Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
 
 
主题工具 显示模式
旧 2008-10-08, 10:47   #1
guangying
初级会员
 
注册日期: 2008-03-22
年龄: 42
帖子: 8
声望力: 0
guangying 正向着好的方向发展
默认 [讨论]大家看看这到底是怎么回事?

每次运行下面的这段代码,系统都会提示:下标为非正整数。可我看了半天也没找出来。大家帮忙看看


%Subroutine to apply Mr.Mur's absorbing boundary conditions
function c=mr_mur(ezs,ezs1,ezs2,nx1,ny1,nx,ny,c1,c3)
%corners are done with first order
ezs(1,1)=ezs1(2,1)+c1*(ezs(2,1)-ezs1(1,1));
ezs(1,ny)=ezs1(2,ny)+c1*(ezs(2,ny)-ezs1(1,ny));
ezs(nx,1)=ezs1(nx,1)+c1*(ezs(nx1,1)-ezs1(nx,1));
ezs(nx,ny)=ezs1(nx1,ny)+c1*(ezs(nx1,ny)-ezs1(nx,ny));
%second order elsewhere
for j=2:ny1
ezs(1,j)=ezs2(2,j)+c1*(ezs(2,j)-ezs2(1,j))...
-c3*(hxs(1,j+1)-hxs(1,j-1)+hxs(2,j+1)-hxs(2,j-1));
end
for j=2:ny1
ezs(nx,j)=ezs2(nx1,j)+c1*(ezs(nx1,j)-ezs2(nx,j))...
-c3*(hxs(nx,j+1)+hxs(nx1,j+1)-hxs(nx,j-1)-hxs(nx1,j-1));
end
for i=2:nx1
ezs(i,1)=-ezs2(i,2)+c1*(ezs(i,2)-ezs2(i,1))...
+c3*(hys(i+1,2)+hys(i+1,1)-hys(i-1,2)-hys(i-1,1));
end
for i=2:nx1
ezs(i,ny)=ezs2(i,ny1)+c1*(ezs2(i,ny1)-ezs(i,ny1))...
+c3*(hys(i+1,ny)+hys(i+1,ny1)-hys(i-1,ny)-hys(i-1,ny1));
end
for i=1:nx
for j=1:ny
ezs2(i,j)=ezs1(i,j);
ezs1(i,j)=ezs(i,j);
end
end
c=ezs;

其中:ezs(i,j)=ezs1(i,j)=ezs2(i,j) , nx=ny=256, nx1=nx-1 , ny1=ny-1 , c1,c3是常数
__________________
:lol: :lol: :lol:
guangying 当前离线   回复时引用此帖
 


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

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



所有时间均为北京时间。现在的时间是 15:47


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