chunshui2003 发表于 2010-3-4 20:30

请问如何循环保存二维数组

计算一个微分方程,里面的一个参数每次都取不同的值,所以每一次的计算结果都不同,是一个1000*8的矩阵。
我希望每一次计算后都能够将计算结果保存到对应的矩阵,一维会操作,但是二维就不清楚了,请大家给予一下帮助。
比如: for i=1:100
             ......         %计算的过程
             Y(i)=y;      % y是每次计算得到的结果,Y是希望保存结果的数组,只是每次名称都不同而已
            end
我想说的就是这个意思。上面的Y(i)想保存一个二维数组肯定不对,我知道可能表达不是很清楚,大家见谅。

ChaChing 发表于 2010-3-4 23:30

Y(i,:)=y;??

elitecn 发表于 2010-3-5 00:30

如果你每次算出一个值,就
Y=zeros(1000,8);
for i=1:1000
   for j=1:8
       ............
       Y(i,,j)=y;
   end
end

如果是每次得到8个值,就
Y=zeros(1000,8);
for i=1:1000
   Y(i,:)=y;
end

[ 本帖最后由 elitecn 于 2010-3-5 00:35 编辑 ]

chunshui2003 发表于 2010-3-5 09:23

我可能没表达清楚。我的意思是每一次都得到一个1000*8的矩阵,作为一个整体保存到另一个新的矩阵里。而用于保存数据的矩阵的名称每一次都要不同,比如Y1,Y2,Y3,...
希望能给解答一下,谢谢。

elitecn 发表于 2010-3-5 12:20

用三维矩阵不就成了,也就是在二维矩阵之上再加入若干“层”
Z=zeros(m,n,k);   %建立全0三维矩阵,然后就用你的程序
for i=1:k
             ......         %计算的过程
             Z(:,:,i)=y;      % y是每次计算得到的结果,Y是希望保存结果的数组,只是每次名称都不同而已
            end

ChaChing 发表于 2010-3-5 13:17

回复 地板 chunshui2003 的帖子

help eval

chunshui2003 发表于 2010-3-8 10:49

谢谢上面各位的回答了,后来我发现我只要将每次计算的结果保存到xls文档中就可以了,需要的时候在调用即可。
就是用到xlswrite和xlsread 两个命令。
页: [1]
查看完整版本: 请问如何循环保存二维数组