如何使用fopen函数在Matlab中准确地将数据打印到文件中

时间:2016-08-11 10:10:18

标签: matlab

我在Matlab中有一个Matrix REF,如图所示。

REF=[0 1;
     1 1;
     2 1;
     5 10;
    10 0;
    50 1;
   100 2;
  1000 1];

使用以下代码将REF保存到文件时。

A1=REF(:,1);
A2=REF(:,2);
fileID = fopen('exp.txt','w');
fprintf(fileID,'%d %d\n', A1, A2);
fclose(fileID);  

输出不符合要求。我该如何解决这个问题呢?

4 个答案:

答案 0 :(得分:2)

使用dlmreadM = 25.1327 3.1416 18.8496 9.4248 15.7080 21.9911 12.5664 28.2743 6.2832 dlmwrite('myFile.txt',M,'delimiter','\t','precision',3) 在文件中写入/读取矩阵。

http://in.mathworks.com/help/matlab/ref/dlmwrite.html

PageBase : Page

答案 1 :(得分:0)

如果由于某种原因,您更喜欢使用fprintf(例如,因为您需要在每行之后编写更多内容),这里不用担心循环:

fileID = fopen('exp.txt','w');
for ii=1:size(REF,1)
    fprintf(fileID,'%d %d\n', REF(ii,1),REF(ii,2));
end
fclose(fileID);

答案 2 :(得分:0)

fprintf根据列顺序写入数据,因此在您的情况下,您只需转置REF即可获得正确的输出。所以在fprintf来电:

fprintf(fileID,'%d %d\n', REF.');

答案 3 :(得分:0)

w更改为wt并转换REF,如下所示: -

fileID = fopen('exp.txt','wt');
fprintf(fileID,'%d %d \n', REF.');
fclose(fileID);