篇首语:本文由小编为大家整理,主要介绍了matlab 如何把三维矩阵拼接相关的知识,希望对你有一定的参考价值。
比方说tirbe1和tribe2都是三维矩阵且tribe1是48*3*50的三维矩阵而tribe2是48*3*20的三维矩阵,如何将这两个矩阵平拼接成为48*3*70的三维矩阵?
1、首先,定义A和B两个2*2的矩阵。cat(维度,A,B)可以按照给定方向拼接矩阵。如图使用cat(1,A,B)把这两个矩阵竖着连起来。使用cat(2,A,B)把这两个矩阵横着连起来。
2、C=cat(3,A,B)把两个矩阵摞成一个三维数组,如图。
3、使用cat要注意,在拼接方向上的宽度要一致才可拼接。
4、如图,2*2的矩阵和2*3的矩阵在方向2上(水平方向)可以用cat拼接。
5、使用Horzcat可以水平连接矩阵,使用vertcat可以垂直连接矩阵,相当于cat的专用版本。
参考技术A1、首先在我们的电脑上打开matlab,在命令行窗口中输入a=[1,2,3;4,5,6];b=[7,8,9],按回车键,生成两个同列不同行的矩阵。
2、对于同列不同行的两个矩阵,我们可以通过c=[a;b],进行拼接矩阵,分号是纵向拼接矩阵。
3、我们在命令行窗口中输入a=[1,2,3;4,5,6];d=[1;10],按回车键生成两个同行数不同列数的矩阵。
4、对于同行数不同列数的两个矩阵,可以通过c=[a,d],进行拼接矩阵,其中逗号的意思是横向拼接矩阵。
5、我们也可以使用空格来横向拼接矩阵,输入c=[a d],按回车键和逗号拼接是一样的效果。
6、如果我们想拼接多个矩阵,只要保证各个矩阵列数或者行数相同,就可以可以通过分号或者逗号进行拼接。
参考技术B 用细胞数组,t=tribe1,tribe2可以勉强接着一起,不过可能没你想要的效果。那就只有用循环的:我有一个cell是1*4cell的,每一个cell有1400*720的二维矩阵,如何把她转为一个1400*720*4的三维矩阵?
参考技术A 没有别的办法,你这个cell in cell,必须用for,而且用for也没有你说的那么夸张,我这里做了一个测试,用了一个30万行的你这样的矩阵进行了一下实验,也就用了1分钟。恩恩,非常感谢!!
本回答被提问者采纳以上是关于matlab 如何把三维矩阵拼接的主要内容,如果未能解决你的问题,请参考以下文章