【问题标题】:How do I save a code into text files per multiple timesteps?如何按多个时间步将代码保存到文本文件中?
【发布时间】:2019-07-10 07:34:43
【问题描述】:

我正在编写一个分析系统 X、Y、Theta 坐标的模拟。我正在通过 TMAX 和 N 个粒子运行模拟。但是,由于 TMAX 通常非常大,我只想要每 100 个时间步的数据。目前,我的代码为我提供了每个时间步长和粒子位置的信息。但是,它将所有信息吐到一个矩阵上,即如果我运行 12 个粒子模拟 50 步(示例的缩写),前 12 行是粒子 1-12,它们在时间 = 10 时的位置。但是,接下来的 12 行是时间=20 时的粒子 1-12,依此类推。我将如何让每个时间步入它自己的文本文件?以下是我的代码:

fid = fopen('word.txt','w');
for nn = 1:TMAX
   if mod(nn,10)==0

    x = x + vel*cos(theta)*dt;
    y = y + vel*sin(theta)*dt;
    fprintf(fid, '%4.5f\t%4.5f\t%4.5f\n', x,y,theta);
   end
end  

目前,这是将所有数据打印到一个矩阵中。第 1-12 行是时间步骤一,然后 13-24 是时间步骤二。我如何能够以不同的名称将每个时间步保存到自己的文件中?有什么办法可以制作变量文件名?非常感谢

【问题讨论】:

    标签: matlab


    【解决方案1】:

    您可以将fopen 命令放入循环中,并根据您的变量nn 命名文件:

    for nn = 1:TMAX
       if mod(nn,10)==0
          fid = fopen(['word' num2str(nn) '.txt'],'w');
          x = x + vel*cos(theta)*dt;
          y = y + vel*sin(theta)*dt;
          fprintf(fid, '%4.5f\t%4.5f\t%4.5f\n', x,y,theta);
          fclose(fid)
       end
    end 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多