土木年华 发表于 2011-5-31 20:54

循环结算结果的输出

各位大侠好,我循环计算得到了500个荷载 时程数据,想把每一次循环的结果都连续输出,请问怎么办?
t=0:0.001:5; %时间步长
for j=1:500;
   F=G*(1+D(j)*cos(2*pi*fs(j)*t+P(j));%荷载采用傅立叶级数表示
            fno='F.txt';
            fid=fopen(fno,'wt');
            for k=1:5001
            fprintf(fid,'%f %f\n',t(k),F(k));
            end
end
但弄了很久,就是弄不好,希望得到高手的指导, 非常感谢!!

wangyouyi 发表于 2011-5-31 21:56

回复 1 # 土木年华 的帖子

LZ是想把500次循环的数据分别存在500个txt文件中,还是所有的存在一个txt文件呀?

ChaChing 发表于 2011-6-1 00:18

回复 1 # 土木年华 的帖子

没必要在循环中每次都fopen吧!

土木年华 发表于 2011-6-1 11:57

回复 2 # wangyouyi 的帖子

你好,我是想把500次循环的数据分别存在500个txt文件中中,请问怎么办,谢谢你

wangyouyi 发表于 2011-6-1 12:05

回复 4 # 土木年华 的帖子

你可以参考一下这个帖子,要保证每次循环的txt文件名变化,这样才不至于循环后文件被覆盖!
http://forum.vibunion.com/thread-102640-1-5.html

土木年华 发表于 2011-6-1 14:33

回复 5 # wangyouyi 的帖子

谢谢你的回答, 但那个是得出的.mat文件, 我想得到.txt文件有办法吗??,谢谢

wangyouyi 发表于 2011-6-1 21:56

回复 6 # 土木年华 的帖子

我对你的程序的有些参数不太了解,如G D fs P,所以就在你程序基础上简单改了下!应该可以达到批量输出txt文件的要求!
t=0:0.001:5; %时间步长
for j=1:500;
            F=G*(1+D(j)*cos(2*pi*fs(j)*t+P(j));%荷载采用傅立叶级数表示
            fno=strcat(num2str(j),'.txt');
            fid=fopen(fno,'wt');
            for k=1:5001
            fprintf(fid,'%f %f\n',t(k),F(k));
            end
            fclose(fid);
end

土木年华 发表于 2011-6-2 07:23

回复 7 # wangyouyi 的帖子

非常感谢你

土木年华 发表于 2011-6-2 10:45

回复 7 # wangyouyi 的帖子

你好,还得请教一下您, 麻烦你拉, 我要是把每次循环的结构都一次保存在同一个.txt文件里,我这个是每一次循环得出两个数,我想得出的500次循环结果放在txt文件的500行内。谢谢你,请教了
for i=1:500;
MAXai=max(abs(ai));%加速度响应的绝对最大值
RMSai=sqrt(sum(ai.^2)/length(ai));%加速度响应的均方根值

fno=('aout.txt');

            fid=fopen(fno,'wt');
            fprintf(fid,'%f %f\n',MAXai,RMSai);   
            fclose(fid);

wangyouyi 发表于 2011-6-2 11:49

回复 9 # 土木年华 的帖子

你可以把500次循环的结果保存在MAXai和RMSai数组中,再就其写入txt文件!
页: [1]
查看完整版本: 循环结算结果的输出