MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   [求助]用for循环赋值矩阵出现的问题 (https://www.labfans.com/bbs/showthread.php?t=2011)

rain_fall 2008-04-02 10:42

[求助]用for循环赋值矩阵出现的问题
 
for I=0:0.01:2,
for J=0:pi/100:2*pi,
result=dblquad(inline('x.*exp(i*(x.^3.*cos(y)-I.*x.*cos(y-J)-x.^2))'),0,1,0,2*pi,[],[],I,J);%求二重积分
a=I./0.01+1;b=J/(pi/100)+1;
A(a,b)=((abs(result)).^2)/(pi.^2);
end
end
A

运行时出现如下代码
??? Attempted to access A(15,1); index must be a positive integer or logical.

Error in ==> Untitled1 at 5
A(a,b)=((abs(result)).^2)/(pi.^2);
请问哪位大侠知道这是怎么回事?请赐教,不胜感激!

watcher 2008-04-02 11:56

只能使用整数应用矩阵元素,你代码中的下标是实数。
建议for循环控制变量I,J用整数,修改程序即可。

rain_fall 2008-04-03 09:04

感谢这位朋友的帮助,问题我已经解决了,改成如下的代码就可以运行了
for I=1:200,
for J=1:200,
a=(I-1).*0.01;b=(J-1).*(pi/100);
result=dblquad(inline('x.*exp(i*(x.^3.*cos(y)-a.*x.*cos(y-b)-x.^2))'),0,1,0,2*pi,[],[],a,b);%求二重积分
z=(I-1)*200+J;
A(z)=((abs(result)).^2)/(pi.^2);
end
end
:lol:


所有时间均为北京时间。现在的时间是 05:51

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.