概述
最近用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
即可实现。
最后
以上就是酷酷小蘑菇为你收集整理的matlab中矩阵的差分迭代(或者循环)该怎么表示?的全部内容,希望文章能够帮你解决matlab中矩阵的差分迭代(或者循环)该怎么表示?所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复