PDA

查看完整版本 : [求助]用for循环赋值矩阵出现的问题


rain_fall
2008-04-02, 10:42
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: