首页 > 解决方案 > fprintf:某个点后的新行

问题描述

请参阅下面的代码。

fileID = fopen('test.txt', 'w');
fprintf(fileID, '{%f, %f},    ', array1(1:end))
fclose(fileID)

我希望输出格式为:

{1,1}, {2,2}, {3,3}, {4,4},
{5,5}, {6,6}, {7,7}, {8,8},
...

但是,我反而得到:

{1,1}, {2,2}, {3,3}, {4,4}, {5,5}, {6,6}, {7,7}, {8,8}, ...

假设一个大型数据集。

我知道我可以在 fprintf 字段中添加一个 '\n' ,但这只会在每对值之后给我一个新行。

如何在“x”次“迭代”之后的某个点插入新行(在我的情况下,在每 4 对值之后)?

标签: matlabprintf

解决方案


为此,您必须为整行创建格式:

nb_pairs = 4;
format = [strjoin(repmat({'{%f, %f},'}, 1, nb_pairs), ' ') '\n'];
% format = '{%f, %f}, {%f, %f}, {%f, %f}, {%f, %f},\n'
fprintf(fileID, format, array1);

推荐阅读