matlab将每次循环的数据输出在同一个txt的不同列

我用matlab做了一个循环,每次循环都可以得到一些数据
我如何将每次循环的数据都放在在同一个txt里面
比如说输出为a.txt
我第一次循环得到的数据放在a.txt的第一列
第二次循环放在a.txt的第二列
以此类推

function [A,r]=FRE()
%计算固有频率
for j=2:1:6
m=j;
K=CK(2.1e11,0.3,m,0.2,0.05,10,1,10)
M=CM(0.2,0.05,7850,10,1,10)
[A,r]=eig(inv(M)*K)
w1=sqrt(r)/2/pi;
w2=diag(w1);
w=sort(w2);
format long
for i=1:5
save data.txt w -append -ascii
end
end

结果只输出了一列数据
求大神帮助!请直接指出代码怎么改。谢谢。

都不知道你的第二重循环有啥意义,输出的变量跟i没有任何关系,也不知道你做这个循环干啥。
其实你这个问题很简单,你只需将你需要输出的数据先按你希望的txt行列规则存放在一个矩阵里(如A),然后save data.txt -ascii A,即可!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-01-13
是按行写的,按列写很麻烦。建议你按列写到excel表里,然后再另存为txt,或者写在excel表里,再用matlab读取,把所有数据再一起写到txt文件里
函数xlswrite()
用着很方便,具体查帮助
第2个回答  2014-01-13
写文件是按行写的,无法按列写。
建议把结果保存成一个大矩阵,最后一起写文件。
第3个回答  2014-01-13
按行写入,读的时候 转一下行列。 我感觉使用dlmwrite比较方便
相似回答