1

我正在做一个操作来获得一个矩阵 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
4

1 回答 1

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)

除了为每个循环迭代创建一个单独的文件之外,这应该在每次迭代时将您的矩阵输出到主结果文件

于 2013-02-28T10:47:31.077 回答