Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2008-04-02, 10:42   #1
rain_fall
初级会员
 
注册日期: 2008-04-02
年龄: 43
帖子: 5
声望力: 0
rain_fall 正向着好的方向发展
默认 [求助]用for循环赋值矩阵出现的问题

for I=0:0.01:2,
for J=0i/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);
请问哪位大侠知道这是怎么回事?请赐教,不胜感激!
rain_fall 当前离线   回复时引用此帖
旧 2008-04-02, 11:56   #2
watcher
高级会员
 
注册日期: 2008-04-02
年龄: 47
帖子: 175
声望力: 21
watcher 正向着好的方向发展
默认

只能使用整数应用矩阵元素,你代码中的下标是实数。
建议for循环控制变量I,J用整数,修改程序即可。
watcher 当前离线   回复时引用此帖
旧 2008-04-03, 09:04   #3
rain_fall
初级会员
 
注册日期: 2008-04-02
年龄: 43
帖子: 5
声望力: 0
rain_fall 正向着好的方向发展
默认

感谢这位朋友的帮助,问题我已经解决了,改成如下的代码就可以运行了
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:
rain_fall 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


相似的主题
主题 主题作者 版面 回复 最后发表
【求助】关于用matlab处理图象中感兴趣区域的问题 chen_lei_1 MATLAB论坛 3 2008-06-30 17:19
[求助]一个技术问题 xiaoyu MATLAB论坛 4 2008-04-27 11:57
[求助]GAMMA函数 LIKAIYU MATLAB论坛 1 2008-04-21 23:55
【文章】仿真动画软件设计作品--电路开闭 yesman MATLAB论坛 0 2007-12-11 16:21


所有时间均为北京时间。现在的时间是 01:52


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