matlab中矩阵的差分迭代(或者循环)该怎么表示?

最近用matlab编程时发现这样一个问题:

比如我想用X(k)=[1 2 3;4 5 6;7 8 9],B=[3 2 1;6 5 4; 9 8 7] 完成 X(k)=X(k-1)*B 的计算,发现无法表示X的初始值是[1 2 3;4 5 6;7 8 9],如果用语句:X(1)=[1 2 3;4 5 6;7 8 9],程序就会报错:

这种问题有一个很好用的解决办法【万能的互联网啊!】,就是三维矩阵

图片演示一下就很直观了:

1、首先在matlab的命令行中输入 zeros(3,4,2),回车,就会出现3行4列2页的矩阵:

 2、如果输入zeros(3,4,3),就会产生3行4列3页的矩阵:

 也就是说括号里最后一个数字是几,就会产生对应几页的矩阵。(这“几页”就可以看成迭代的次数,后边会举例)

3、如果输入a=zeros(3,4,3),然后输入a(1,1,1)=1,就可看到第1页的第1行第1列被赋值为1:

                 

:4、若再输入a(1,1,2)=3,a矩阵第2页的第1行第1列被赋值为3。

三维矩阵的知识就介绍到此,我们来利用它解决最开始的问题。 

要实现X(k)=X(k-1)*B,则令

X(:,:,1)=[1 2 3;4 5 6;7 8 9]

for p=1:n

     X(:,:,p+1)=X(:,:,p)*B

end

即可实现。

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值