MATLAB中越界错误 如何修正

clear;x1(1)=0.5;x2(1)=0.2;y1(1)=0.7;y2(1)=0.5;a=1.4;b=0.3;q=2;c1=0.5;c2=0.8;forn=1:10... clear;
x1(1)=0.5;x2(1)=0.2;y1(1)=0.7;y2(1)=0.5;a=1.4;b=0.3;q=2;c1=0.5;c2=0.8;
for n=1:100;
e1(n)=q*y1(n)-x1(n);
e2(n)=q*y2(n)-x2(n);
u(n)=(-b*e1(n)-q+1+q*a*y1(n+1)*y1(n+1)-a*x1(n+1)*x1(n+1)+c1*(c1*z1(n)+z2(n))+c2*z2(n))/q;
x1(n+1)=x2(n)+1-a*x1(n)*x1(n);
x2(n+1)=b*x1(n);
y1(n+1)=y2(n)+1-a*y1(n)*y1(n);
y2(n+1)=b*y1(n)+u(n);
f(n)=c1*z1(n)-q+1+q*a*y1(n)*y1(n)-a*x1(n)*x1(n);
z1(n)=e1(n);
z2(n)=e2(n)-f(n);
end;
n=1:100;
figure(1);
semilogy(n,abs(e1(n)),'k',n,abs(e2(n)),':k');xlabel('n');ylabel('|e_i(n)|');
figure(2);
plot(x1(n),x2(n),'.k');
xlabel('x_1');ylabel('x_2');
axes('position',[0.1,0.3,0.5,0.5]);
plot(y1(n),y2(n),'.k');
xlabel('y_1');ylabel('y_2');
展开
 我来答
好程序员
2018-08-01 · HTML5前端培训/大数据培训/Java
好程序员
好程序员是IT高端课程培训基地,从平凡到卓越,为梦想而拼搏。
向TA提问
展开全部
实现指定好矩阵的规格就行了(其实根本不用担心越界问题,matlab动态分配空间的, 我这里仅仅就问题论问题) 比如 你让 BW=ones(m,n) 就行了
qingningleyun
2016-10-26 · TA获得超过5853个赞
知道大有可为答主
回答量:2991
采纳率:30%
帮助的人:3042万
展开全部
% 循环中 u(1) 的生成需要 y1(2) 的数据(y1(2)尚未赋值)
% 而 y1(2) 的生成又需要 u(1) 的数据
% 矛盾了,所以程序中断在求 u(1) 这一句
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式