wuhong 发表于 2008-9-22 21:41

求助:如何保存循环中的数据结果

如何将每次循环中得出的数据结果保存在指定的文件夹中

sigma665 发表于 2008-9-23 08:15

付给一变量,然后再保存

科技在线 发表于 2008-9-23 08:21

用变量表示,然后读

wuhong 发表于 2008-9-23 08:59

还是不能实现阿!我使用以下方法
for km=1:1000
NumL= ['tezhen' num2str(km) '.mat'];
save NumL l damp freq;   %l damp freq为每次循环的得到的结果,均为矩阵
end
可是结果均保存在NumL.mat中,而且只保存了最后一次结果,前面循环的结果被覆盖了。我本想保存在tezhen1.mat , tezhen2.mat……中的。而且我想把这些文件保存在指定的目录文件夹中,而不是当前工作目录中。初学MATLAB,请高手指点!

sigma665 发表于 2008-9-23 10:55

回复 地板 wuhong 的帖子

循环之后再保存

ChaChing 发表于 2008-9-23 12:52

save指令中第一个引数是会被当作文字输入
试试下列指令吧
for km=1:1000, ...; NumL= ['tezhen' num2str(km) '.mat'];
   eval(['save ', NumL,'l damp freq']); end

wuhong 发表于 2008-9-24 10:02

回复5楼、6楼

谢谢5、6楼的答复。但问题还没解决阿。
回复5楼:我是想把循环中每次得到的结果保存在不同的文件中(以便后面读取)。
回复6楼:我按照你的方法运行了,可是显示错误。
??? Error: Missing MATLAB operator.

Error in ==> ssswh at 55
eval(['save', NumL,'l damp freq']);

ChaChing 发表于 2008-9-24 10:38

ssswh at 55是什麽?
没头没尾, 真的很难看懂你的错误讯息
*.m档若不大, 或许可上传

magrog 发表于 2008-9-25 10:57

这不就是我以前问过的问题吗。看看他们的回复就知道了
result = [];
for A1 = 0:0.0005:0.05
       temp= 。。。。。。
       result = ;
end

[ 本帖最后由 magrog 于 2008-9-25 10:59 编辑 ]

zhong84 发表于 2008-9-25 14:53

result = ;
a1= 0:0.5:5;
for m=1:length(a1)
       ts=int2str(m);
       temp=a1(m)*6;
   result=;
      fp=fopen(['d:\xxx\',ts,'.txt'],'a');%保存在d:\xxx文件夹下,以循环变量为文件名
   fprintf(fp,'%5f    ',result);
   fclose(fp);
end

wuhong 发表于 2008-9-25 15:57

回复

感谢楼上的各位回复!!还有一个问题,就是,我原来的结果是复数,可是保存后,只显示实部,没显示虚部。请教各位是何问题。

ChaChing 发表于 2008-9-25 23:02

Help save ...
"Saving complex data with the -ascii option causes the imaginary part of the data to be lost, as MATLAB cannot load nonnumeric data ('i')."
页: [1]
查看完整版本: 求助:如何保存循环中的数据结果