MATLAB中如何循环让一个矩阵连续乘另一个?

l=zeros(4,4);a=0.05;b=0.3;c=0.2;l(1,1)=1-a;l(2,1)=a;l(2,2)=1-b;l(3,2)=b;l(3,3)=1-c;l(... l=zeros(4,4);
a=0.05;b=0.3;c=0.2;
l(1,1)=1-a;l(2,1)=a;l(2,2)=1-b;l(3,2)=b;l(3,3)=1-c;l(4,3)=c;l(4,4)=1;
x0=20000;y0=0;z0=0;w0=0;
h0=[x0;y0;z0;w0];
for i=1:10;
h(i)=l*h(i-1); &&&这一步过不去,请问是哪里的问题,该如何修改?
end
我的意思就是想让矩阵L连续的左乘矩阵h0……
展开
 我来答
网络世界
2010-06-14 · 网络热点,科普知识
网络世界
采纳数:174 获赞数:1328

向TA提问 私信TA
展开全部
l=zeros(4,4);
a=0.05;b=0.3;c=0.2;
l(1,1)=1-a;l(2,1)=a;l(2,2)=1-b;l(3,2)=b;l(3,3)=1-c;l(4,3)=c;l(4,4)=1;
x0=20000;y0=0;z0=0;w0=0;
h(:,1)=[x0;y0;z0;w0];
for i=2:10
h(:,i)=l*h(:,i-1);
end
h

Subscript indices must either be real positive integers or logicals

中文解释:下标索引必须是正整数类型或者逻辑类型

出错原因:在访问矩阵(包括向量、二维矩阵、多维数组,下同)的过程中,下标索引要么从 0 开始,要么出现了负数。注:matlab 的语法规定矩阵的索引从 1 开始,这与 C 等编程语言的习惯不一样。

解决办法:自己调试一下程序,把下标为 0 或者负数的地方修正。

你这个程序中的h是不是上面的h0啊!
流星flying
2010-06-15 · TA获得超过9171个赞
知道大有可为答主
回答量:1337
采纳率:100%
帮助的人:1182万
展开全部
l=zeros(4,4);
a=0.05;b=0.3;c=0.2;
l(1,1)=1-a;l(2,1)=a;l(2,2)=1-b;l(3,2)=b;l(3,3)=1-c;l(4,3)=c;l(4,4)=1;
x0=20000;y0=0;z0=0;w0=0;
h(:,1)=[x0;y0;z0;w0];
for i=2:10
h(:,i)=l*h(:,i-1);
end
h

h的最后一列就是你所要的结果。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1c9669c
2010-06-15 · TA获得超过136个赞
知道答主
回答量:102
采纳率:0%
帮助的人:69.6万
展开全部
l=zeros(4,4);
a=0.05;b=0.3;c=0.2;
l(1,1)=1-a;l(2,1)=a;l(2,2)=1-b;l(3,2)=b;l(3,3)=1-c;l(4,3)=c;l(4,4)=1;
x0=20000;y0=0;z0=0;w0=0;
h0=[x0;y0;z0;w0];
y=zeros([4,1]);
z=zeros([4,1]);
for i=1:4
y(i)=h0(i);
end
for j=1:10
z=y;
y=l*z;%这一步过不去,请问是哪里的问题,该如何修改?
end
y %结果在y中
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式