Matlab:生成一个包含循环中文本和数字的文本文件

时间:2016-06-08 13:32:08

标签: matlab for-loop

我想生成一个包含以下内容的文本文件(带有确切的换行符):

EXIT
POWDER DIFFRACTION (2-D)
C:\Users\themosawi\folder\file_0100.tif
EXIT
POWDER DIFFRACTION (2-D)
C:\Users\themosawi\folder\file_0101.tif
EXIT
POWDER DIFFRACTION (2-D)
C:\Users\themosawi\folder\file_0102.tif
EXIT

我写了以下代码

for i = 100:102
j = sprintf('%04d', i)
k = (['EXIT','',...
'POWDER DIFFRACTION (2-D)','',...
'C:\Users\themosawi\folder\file_' j '.tif']);
end
fid=fopen('MyFile.txt','w');
fprintf(fid, k);
fclose(fid);

但是我得到的文本文件只包含一行:

EXITPOWDER DIFFRACTION (2-D)C:

我做错了什么?

1 个答案:

答案 0 :(得分:1)

在循环中,您只存储k的最后一个值。然后打开循环的外部文件,只写下最后一个k。你应该考虑在循环之前打开文件,然后在循环中写入它(使用fprintf)。

% Open the file
fid = fopen('MyFile.txt', 'w');

for k = 100:102
    % Write an entry in the file for this value of k
    fprintf(fid, 'EXIT\r\nPOWDER DIFFRACTION (2-D)\r\nC:\\Users\\themosawi\\folder\\file_%04d.tif\r\n', k);
end

% Close the file
fclose(fid);