您的位置:首页 > 其它

将矩阵转化为LibSvm需要的格式

2014-02-22 12:47 330 查看
function svmtransform(A)
[m,n]=size(A);

fid = fopen('A.txt','w');%写入文件路径
for i=1:m
temp1 = A(i,2:n);%存储A中每一行从第2位开始的值
temp2 = [];
for j = 1:length(temp1)

if temp1(j) ~= 0
temp2 = [temp2 ' ' num2str(j) ':' num2str(temp1(j))];

else

     temp2 = [temp2 ' ' ' ' ' ' ' '];

    end    
end % temp2存放A一行添加序号的结果
temp3 = [num2str(A(i,1)) temp2];%temp3存放最终一行的结果

[m1 n1] = size(temp3);

for k = 1:n1

if k == n1

    fprintf(fid,'%c\n',temp3(k));

else

fprintf(fid,'%c\t',temp3(k));

end
end

fclose(fid);

>> a=[0 1 5 9;1 2 6 0;0 3 7 1];
>>svmtransform(a)
open A.txt
0 1:1 2:5 3:9
1 1:2 2:6
0 1:3 2:7 3:1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: