matlab程序无法运行,提示越界,请问如何调试?

clearallformatbankro1=2600;c1=1150;k1=3.0;ro2=600;c2=200;k2=0.2;T0=300;T=1500;h=500;r... clear all
format bank
ro1=2600;c1=1150;k1=3.0;
ro2=600;c2=200;k2=0.2;
T0=300;T=1500;h=500;
r1=0.025;r2=0.05;r3=0.1;n=25;n1=n+1;n2=(r3-r1)/(r2-r1)*n+1;
detr=(r2-r1)/n;dett=0.2;
M1=ro1*c1*detr^2/k1/dett;
M2=ro2*c2*detr^2/k2/dett;

for i=1:1:n2
x(i,1)=T0;
end
for t=1:1:1000
for i=1:1:n2
if i==1 %上层边界
x(i,t+1)=2*(x(i+1,t)-x(i,t))/M1+2*h*detr*(T-x(i,t))/k1/M1+x(i,t);
elseif i>1&&i<n1 %上层内部
x(i,t+1)=(x(i-1,t)+x(i+1,t))/M1+(1-2/M1)*x(i,t);
elseif i==n1 %上下层边界处
x(i,t+1)=x(i,t)+2*((x(i-1,t)-x(i,t)/k2+(x(i+1,t)-x(i,t))/k1))/(M1/k2+M2/k1);
elseif i>n1&&i<n2 %下层内部
x(i,t+1)=(x(i-1,t)+x(i+1,t))/M2+(1-2/M2)*x(i,t);
elseif i==n2 %下层边界
x(i,t+1)=x(i,t)+2*(x(i-1,t)-x(i,t))/M2;
end
end
end

然后显示??? Attempted to access x(77,1); index out of bounds because size(x)=[76,2]. 但是我觉得i不可能算到77,为什么这么显示呢
展开
 我来答
背锅侠Daddy
2009-05-26 · TA获得超过475个赞
知道小有建树答主
回答量:874
采纳率:0%
帮助的人:407万
展开全部
矩阵越界了,试着改变矩阵
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式