使用Matlab在TEXT文件中编写

时间:2014-03-21 05:22:57

标签: matlab file-io

我正在尝试将一些值写入文本文件。我附上了以下代码。

a =2 ;
b=3;
fName = 'C:\Users\XXX\Desktop\ddd.txt';
fid = fopen('ddd.txt','w');

for i=1:100
dlmwrite(fName,a,'-append');
dlmwrite(fName,b,'-append');
b=b*2;
a=2*a;  
end

我希望用逗号分隔 a b 的值。但我得到的所有值都没有任何分离。如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

您可以使用以逗号分隔的元素为文件写入矩阵:

csvwrite(filename,matrixname);
dlmwrite(filaname,matrixname);

但是,据我所知,在最后一个元素之后无法添加逗号。对于您的情况,您可以将ab作为2个不同矩阵的元素。在循环中,生成每个矩阵的元素。然后在循环外写dlmwrite的每个矩阵。

或者,您可以将fprintf用于文件的单个逗号。

fprintf(" , ");

咨询http://www.mathworks.in/help/matlab/ref/fprintf.html

答案 1 :(得分:0)

如果你想编写逗号分隔的文件,同时对当前的for循环方法进行最小的修改,这是我能想到的一种方式:

a =2 ;
b=3;
fName = 'ddd.txt';
fid = fopen('ddd.txt','a');
for i=1:100
   fprintf(fid,'%d,%d',a,b);
   b=b*2;
   a=2*a;
   if i~=100
      fprintf(fid,',');
   end
end

不过,我会说填充一个数组,其中包含所需的ab值 - 在您的情况下为100个值 - 然后使用csvwritedlmwrite提到在上一个答案中。