要往文件里面写一个矩阵,总共三列,代码为:
fid = fopen(original_out_name,'w');
[r,c]=size(original_mat);
for i=1:r
for j=1:c
fprintf(fid,'%5f\t',original_mat(i,j));
end
fprintf(fid,'\r\n');
end
fclose(fid);
写了之后textread读出来,发现是4列,而且每一行的最后一列元素都是0,感到奇怪。类比与某些列数不齐的矩阵,不足的地方都是用 0 补齐的。而这次是因为每一行第三个元素后面加了个 ‘\t’ 是空格,虽然显示不出来(我们看的时候,发现是空格)但是读的时候,就会自动补 0 ,因此出现上述情况。可以改写为:
fid = fopen(original_out_name,'w');
[r,c]=size(original_mat);
for i=1:r
for j=1:c-1
fprintf(fid,'%5f\t',original_mat(i,j));
end
fprintf(fid,'%5f',original_mat(i,c));
fprintf(fid,'\r\n');
end
fclose(fid);
这是个问题。