我正在进行操作以获得矩阵M_T。该矩阵将保存到文本文件中。此文本文件将再次用作主数据文件。这必须重复100次。最后,我想将生成的100个文本文件中的所有数据保存到名为final_result.txt的单个文本文件中。我无法弄清楚如何在循环中以不同的名称保存不同的文本文件。我尝试编写以下代码。但它显示错误。
for k=1:100
fid = fopen('data1.txt');
A = textscan(fid, '%f %f %f ') ;
%read the file
a = A{1};
b = A{2};
c = A{3};
p=[a b c];
p_t=p.';
M=rotationMatrix*p_t;
M_T=M.';
fid = fopen('data1.txt', 'wt');
fprintf(fid,' %f\t %f\t %f\n',M_T);
fclose(fid);
textfilename = ['result' num2str(k) '.txt'];
fid1 = fopen('result'k '.txt', 'wt');
fprintf(fid1,' %f\t %f\t %f\n',M_T);
fclose(fid1);
end
答案 0 :(得分:1)
试试这个
textfilename = ['result' num2str(k) '.txt'];
fid1 = fopen(textfilename, Write);
...
这应该生成一个单独的文件resultk.txt
,其中k = 1,...,100。
此外,您打开输入文件两次但只关闭一次。我认为在打开文件进行阅读之前关闭文件会更好,然后再打开它进行写入。
如果这不能解决问题,请尝试发布您获得的特定错误消息。
要将所有文件输出到主文件,请在循环开始之前执行此操作
fidresult = fopen('final_result.txt', Write);
然后在每次迭代
fprintf(fidresult,' %f\t %f\t %f\n',M_T);
然后在循环结束后
fclose(fidresult)
除了为每个循环迭代创建单独的文件外,这应该在每次迭代时将矩阵输出到主结果文件