查看: 158|回复: 2|关注: 0

[已解决] 关于多个矩阵调用及matlab绘图的问题,求解惑

[复制链接]

新手

17 麦片

财富积分


050


7

主题

32

帖子

0

最佳答案
将一个矩阵循环运算30次,得到30个运算后的6*3的矩阵,要求是将矩阵中的18个元素各画一条变化曲线,用来观察矩阵每一次循环后元素的变化,我已经将30个矩阵存到了Data里面,问题是怎么让matlab画出线来,请大佬们解惑。我的调用是不是有问题
A1=[1 0 1 0 0 0;0 0 0 0 0 0;0 1 0 0 0 0;0 0 0 1 0 0;0 0 1 0 0 0;0 0 0 1 0 0];
A2=[0 0 0 0 0 0;1 0 0 0 0 0;0 0 0 0 0 0;0 0 0 0 0 0;0 0 0 0 0 1;0 0 0 0 0 0];
P=[0.5 0.4 0.1;0.5 0.1 0.4;0 0.3 0.7;0.4 0.2 0.4;0.4 0.3 0.3;0.5 0.3 0.2];
data=[0 0.3 0.7;0.7 0 0.3;0.3 0.7 0];
for t=1:30
    P=A1*P+A2*P*data;
  Data{t}=P;
end
plot(t,Data{t}(1,1),'-');

MATLAB 基础讨论
版块优秀回答者

入门

124 麦片

财富积分


50500


1

主题

121

帖子

21

最佳答案
发表于 2019-10-22 19:40:14 | 显示全部楼层 |此回复为最佳答案
你这运行最后一步t=30,最后一行相当于只是执行了plot(30,Data{30}(1,1),'-')这个命令,下面以矩阵第一个元素为例,供你参考
  1. A1=[1 0 1 0 0 0;0 0 0 0 0 0;0 1 0 0 0 0;0 0 0 1 0 0;0 0 1 0 0 0;0 0 0 1 0 0];
  2. A2=[0 0 0 0 0 0;1 0 0 0 0 0;0 0 0 0 0 0;0 0 0 0 0 0;0 0 0 0 0 1;0 0 0 0 0 0];
  3. P=[0.5 0.4 0.1;0.5 0.1 0.4;0 0.3 0.7;0.4 0.2 0.4;0.4 0.3 0.3;0.5 0.3 0.2];
  4. data=[0 0.3 0.7;0.7 0 0.3;0.3 0.7 0];
  5. a = [];
  6. for t=1:30
  7.     P=A1*P+A2*P*data;
  8.     Data{t}=P;
  9.     a =[a Data{t}(1,1)];
  10. end
  11. m = 1:1:30;
  12. plot(m,a,'-');
复制代码

新手

17 麦片

财富积分


050


7

主题

32

帖子

0

最佳答案
 楼主| 发表于 2019-10-22 19:47:44 | 显示全部楼层
帕拉代斯 发表于 2019-10-22 19:40
你这运行最后一步t=30,最后一行相当于只是执行了plot(30,Data{30}(1,1),'-')这个命令,下面以矩阵第一个元 ...

非常感谢您的帮助
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 返回顶部 返回列表