我正在尝试创建一个具有特定格式的.dat文件,以便将其读入新程序。在循环中,我打开数据并希望将该数据打印到.dat文件中的新行。输出看起来像这样:
Event #1 Jan 07 2001
file #1 00 11 22 33
file #2 01 12 23 34
..
所以我想将从数据集中获取的字符串和双精度数组合到.dat文件的同一行。以下是我的代码的一般形式。
file=fopen('phase.dat', 'w');
for k=1:length(data)
X=data(1,k);
Y=data(2,k);
fprintf(file, '%s %f %f \n', 'Event 1', X, Y);
end
fclose(file);
然而,这不起作用。你能看出我的问题吗?谢谢,
答案 0 :(得分:1)
这应该可以正常工作:
Event #11 May 01 2018
file #1 84 63
file #2 51 88
file #3 81 80
file #4 23 89
file #5 23 14
file #6 50 79
file #7 29 46
file #8 00 74
file #9 03 56
file #10 05 02
Event #12 May 01 2018
file #1 23 70
file #2 28 36
file #3 37 47
file #4 96 74
file #5 54 31
file #6 75 11
file #7 50 20
file #8 17 47
Event #13 May 01 2018
file #1 93 01
file #2 32 14
file #3 27 80
file #4 94 56
file #5 59 69
Event #14 May 01 2018
file #1 85 52
file #2 57 12
file #3 22 02
file #4 99 45
file #5 72 62
file #6 56 95
file #7 44 58
file #8 44 00
file #9 83 73
以下是四次运行后文件的潜在内容:
\n
您可以根据需要调整间距,在fprintf
来电格式的末尾追加-in
。
答案 1 :(得分:0)
您的代码有效。我做了一个小修改只是为了类似你所需的格式。
file=fopen('phase.dat', 'w');
fprintf(file, '%s\n\n', 'Event #1 Jan 07 2001');
data = rand(2,10);
for k=1:length(data)
X=data(1,k);
Y=data(2,k);
fprintf(file, '%s%d %f %f\n\n', 'file #', k, X, Y);
end
fclose(file);
那么,究竟什么不起作用?