在用MATLAB时怎么可将循环算出的结果全部导入到excel中,我的程序如下

%%简支深梁的级数解答MATLAB计算过程
syms 'C11','C12','C21','C22','C33','a','y','m','h','C1','C2','x1'
m=1;l=15000;h=1000;a=m*pi/l;
C11=22360/0.99;C12=2236/0.99;C21=2236/0.99;C22=22360/0.99;C33=22360/2.2;
C1=-C12/C22;C2=C11-C12^2/C22;

for y=0:100:1000
A=[0 0 1/C33 -a;0 0 a 0; -(C12*C21-C11*C22)/C22*a^2 -C12/C22*a 0 0;C21/C22*a 1/C22 0 0];
f1=A*h;
B=expm(f1);
D=[B(2,1) B(2,4);B(3,1) B(3,4)];
b=[B(2,2);B(3,2)]*80/(m*pi);
x=inv(D)*b;
C=[x(1);0;0;x(2)];
f2=A*y;
f3=expm(f2);
w=f3*C;
x1=2/0.9*10164*a*w(1)+1/9*w(2);
M=[w;x1]

fid = fopen('M.txt','a');
fprintf(fid,'%f\n',M);
fclose(fid);
save M.txt M -ascii
end
为什么我只能导出最后一组数据呢 其它组得数据都被覆盖了呢 导出到文本文档也行

哦,fprintf(fid,'%f\n',M);这句的功能是将M的数据保存在txt文件里面,但是保存的结果是按列保存,数据只有一列;而且,每次循环保存的时候都会自动覆盖上一次的保存结果,所以得到的只是最后一组。追问

那怎么可以将所有数据全部保存呢?需要怎么写命令啊

追答

现在的M是二维数组是吧,你再用一个二维数组将数据存放在一起,然后一次性保存就好啦,也就是把保存命令放在循环体外部,内部把每一次的M用一个数组缓存起来。

追问

您可以帮我写一下后边完整的程序吗 谢谢

温馨提示:答案为网友推荐,仅供参考
相似回答