如何将输出保存到多个txt文件中?

时间:2016-04-28 06:37:02

标签: matlab

我有100张图片要分析,我希望每张图片的结果都会保存到一个文件中。所以,我有100张图片,我想要100张txt文件。现在,它只能保存最后的结果。 这是我的代码。

fid=fopen('Mycode.txt','w');
for k = 1:nColors
     numTotalImage = (size(a,1) * size(a, 2))*3; %151287
     numnonzero    = nnz(segmented_images{k});
     Percentage    = (numnonzero /numTotalImage)*100;
     A = cluster_center(k,1); 
     B = cluster_center(k,2);
     m =[k; A ;B ;Percentage];

     fprintf(fid , '%.1f, %f, %f, %.1f \r\n' , m);
end
fclose(fid);

我已经改变了模式' w'进入' a'所以它会附加结果,但它仍然在同一个文件中。如何为每个输入添加不同的txt文件?

1 个答案:

答案 0 :(得分:2)

您需要在每次迭代时打开一个新文件 丢弃前导fid=fopen('Mycode.txt','w');并尾随fclose(fid);并将您的代码更改为:

for k=1:nColors
    fid = fpoen(sprintf('Mycode_color%d.txt',k),'w'); %// different file according to k

    % do your stuff here...

    fprintf(fid , '%.1f, %f, %f, %.1f \r\n' , m); %// write to file
    fclose(fid); %// close the file at each iteration
end