我在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);
输出不符合要求。我该如何解决这个问题呢?
答案 0 :(得分:2)
使用dlmread
和M =
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);