我正在编写一个模拟,分析系统的X,Y,Theta坐标。我正在通过TMAX和N个粒子运行模拟。但是,由于TMAX通常非常大,所以我只希望每100个时间步长获取数据。当前,我的代码为我提供了每个时间步长和粒子位置的信息。但是,它将所有信息分散到一个矩阵上,即IE,如果我运行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是时间第二步。如何将每个时间步以不同的名称保存到自己的文件中?有什么办法可以使文件名可变吗?非常感谢
答案 0 :(得分:0)
您可以将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