关于matlab 中如何用循环求矩阵中每个元素值
下面是个24元素的矩阵:PRgrid=[(L1+L2-Pnon(1))/Nev(1)(L1+L2-Pnon(2))/Nev(2)(L1+L2-Pnon(3))/Nev(3...
下面是个24元素的矩阵:
PRgrid=[(L1+L2-Pnon(1))/Nev(1) (L1+L2-Pnon(2))/Nev(2) (L1+L2-Pnon(3))/Nev(3) (L1+L2-Pnon(4))/Nev(4) (L1+L2-Pnon(5))/Nev(5) (L1+L2-Pnon(6))/Nev(6) ...
(L1+L2-Pnon(7))/Nev(7) (L1+L2-Pnon(8))/Nev(8) (L1+L2-Pnon(9))/Nev(9) (L1+L2-Pnon(10))/Nev(10) (L1+L2-Pnon(11))/Nev(11) (L1+L2-Pnon(12))/Nev(12) ...
(L1+L2-Pnon(13))/Nev(13) (L1+L2-Pnon(14))/Nev(14) (L1+L2-Pnon(15))/Nev(15) (L1+L2-Pnon(16))/Nev(16) (L1+L2-Pnon(17))/Nev(17) (L1+L2-Pnon(18))/Nev(18) ...
(L1+L2-Pnon(19))/Nev(19) (L1+L2-Pnon(20))/Nev(20) (L1+L2-Pnon(21))/Nev(21) (L1+L2-Pnon(22))/Nev(22) (L1+L2-Pnon(23))/Nev(23) (L1+L2-Pnon(24))/Nev(24) ];
我觉得这样太多想换成循环语句写:
k=1;
while k<=24
PRgrid(k)=(L1+L2-Pnon(k))/Nev(k);
k=(k+1);
end
但是最后却报错:
the variable 'PRgrid(k)' appears to change size on every loop iteration (within a script)
如果用循环该怎么写啊?
我最后还是想要得到PRgrid的24个元素的矩阵。
请高手指点,万分感谢! 展开
PRgrid=[(L1+L2-Pnon(1))/Nev(1) (L1+L2-Pnon(2))/Nev(2) (L1+L2-Pnon(3))/Nev(3) (L1+L2-Pnon(4))/Nev(4) (L1+L2-Pnon(5))/Nev(5) (L1+L2-Pnon(6))/Nev(6) ...
(L1+L2-Pnon(7))/Nev(7) (L1+L2-Pnon(8))/Nev(8) (L1+L2-Pnon(9))/Nev(9) (L1+L2-Pnon(10))/Nev(10) (L1+L2-Pnon(11))/Nev(11) (L1+L2-Pnon(12))/Nev(12) ...
(L1+L2-Pnon(13))/Nev(13) (L1+L2-Pnon(14))/Nev(14) (L1+L2-Pnon(15))/Nev(15) (L1+L2-Pnon(16))/Nev(16) (L1+L2-Pnon(17))/Nev(17) (L1+L2-Pnon(18))/Nev(18) ...
(L1+L2-Pnon(19))/Nev(19) (L1+L2-Pnon(20))/Nev(20) (L1+L2-Pnon(21))/Nev(21) (L1+L2-Pnon(22))/Nev(22) (L1+L2-Pnon(23))/Nev(23) (L1+L2-Pnon(24))/Nev(24) ];
我觉得这样太多想换成循环语句写:
k=1;
while k<=24
PRgrid(k)=(L1+L2-Pnon(k))/Nev(k);
k=(k+1);
end
但是最后却报错:
the variable 'PRgrid(k)' appears to change size on every loop iteration (within a script)
如果用循环该怎么写啊?
我最后还是想要得到PRgrid的24个元素的矩阵。
请高手指点,万分感谢! 展开
1个回答
展开全部
可能是版本问题,我的是R2010b,运行你的代码没有问题。
L1=1;L2=1;
Pnon=rand(1,24);
Nev=rand(1,24);
k=1;
while k<=24
PRgrid(k)=(L1+L2-Pnon(k))/Nev(k);
k=k+1;
end
你可以加上一句试一试:
L1=1;L2=1;
Pnon=rand(1,24);
Nev=rand(1,24);
k=1;
PRgrid=zeros(1,24);%预先给它分配大小
while k<=24
PRgrid(k)=(L1+L2-Pnon(k))/Nev(k);
k=k+1;
end
L1=1;L2=1;
Pnon=rand(1,24);
Nev=rand(1,24);
k=1;
while k<=24
PRgrid(k)=(L1+L2-Pnon(k))/Nev(k);
k=k+1;
end
你可以加上一句试一试:
L1=1;L2=1;
Pnon=rand(1,24);
Nev=rand(1,24);
k=1;
PRgrid=zeros(1,24);%预先给它分配大小
while k<=24
PRgrid(k)=(L1+L2-Pnon(k))/Nev(k);
k=k+1;
end
追问
按这样循环结束是不是得到的只有最后的PRgrid(24)=(L1+L2-Pnon(24))/Nev(24);前面1到23就被覆盖了吧?如果我想从1到24 的PRgrid(k)每个值都保存下来 应该怎么做呢?
追答
k是不断递增的,计算所得的值都保存在数组里了,怎么会覆盖呢,你可以试一下
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询