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…… 展开
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…… 展开
3个回答
展开全部
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啊!
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啊!
展开全部
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的最后一列就是你所要的结果。
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的最后一列就是你所要的结果。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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中
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中
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询