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的专用版本。

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-07-23

1、首先在我们的电脑上打开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、如果我们想拼接多个矩阵,只要保证各个矩阵列数或者行数相同,就可以可以通过分号或者逗号进行拼接。

本回答被网友采纳
第2个回答  2010-07-28
用细胞数组,t={tribe1,tribe2}可以勉强接着一起,不过可能没你想要的效果。那就只有用循环的:
t=zeros(48,3,70);
tribe1=ones(48,3,50);%输入你自己的tribe1,tribe2
tribe2=rand(48,3,20);
for i=1:70
if i<=50
t(:,:,i)=tribe1(:,:,i);
else t(:,:,i)=tribe2(:,:,i-50);
end
end
如果像上面拼接的情况很多的话,你可以考虑上面的做成函数,祝你好运!
晕,发现自己的答案好差。
第3个回答  2022-01-30
cat (3, A, B)
当A,B分别为二维矩阵时,合并之后为三维矩阵;
A,B为三维矩阵,则在第三维的方向上合并A,B。(这才是人家问的问题的部分答案)
另外,需要注意的是:两个三维矩阵的合并方式有三种,cat只能在第三维的方向上合并,而不能在第一维或第二维的方向上合并
希望被采纳的答案是可以在第一维或第二维或第三维的任意一个方向上都能合并的代码,那段代码才是这个问题的完整正解
第4个回答  推荐于2018-03-10
f=zeros(48,3,70);
f(:,:,1:50)=tribe1;
f(:,:,51:end)=tribe2;本回答被提问者采纳

matlab如何把三维矩阵拼接
1. 使用`cat`函数进行垂直或水平拼接:`cat`函数是MATLAB中用于组合数组的一个非常有用的工具。要垂直拼接两个三维矩阵,可以使用`cat`。要水平拼接,则使用`cat`。这里的数字代表维度,1代表列方向,2代表行方向。2. 使用`reshape`函数调整矩阵形状后再拼接:如果需要将多个不同大小的三维矩阵拼接成...

matlab 如何把三维矩阵拼接
在MATLAB中,矩阵的拼接是一项常见的操作。首先,对于二维矩阵A和B,你可以使用cat函数进行拼接。如果你想要将它们竖向连接,如将两块2*2的矩阵A和B并排放置,可以使用`cat(1,A,B)`。而若需要横向连接,比如A在上,B在下,就用`cat(2,A,B)`。如果你想将两个矩阵转化为三维数组,例如将A和B...

matlab 如何把三维矩阵拼接
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*...

MATLAB中三维矩阵和二维矩阵如何拼接?
不同维数的拼接可以用细胞数组实现:clear all;clc;A=ones(4,2,3);B=ones(2,2)*2;A=mat2cell(A);B=mat2cell(B);C=[A B]---运行结果 C = [4x2x3 double] [2x2 double]---C{1},C{2}分别是A,B

我想把三个三维矩阵合并成一个思维矩阵,且保持举证的一致性不变,请大家...
只需要将a转置一下就可以了:b=reshape(a',1,9)--- matlab中的解释如下:RESHAPE Change size.RESHAPE(X,M,N) returns the M-by-N matrix whose elements are taken columnwise from X. An error results if X does not have M*N elements.RESHAPE(X,M,N,P,...) returns an N-D ...

MATLAB怎么能集体导入多张图片形成一个三维矩阵
集体导入多张图片形成一个三维矩阵方法如下:n=3 %假设有A1,A2,A3,将其组合到B(3,8,2)中 A1=ones(8,2);A2=ones(8,2);A3=ones(8,2);B=zeros(n,8,2);for i=1:n B(i,:,:)=eval(['A',num2str(i)]);end 修改为n=90即可。入导出,是数据库的一种专用命令。这里的...

请问如何用matlab拼接100幅图片,就是把幅图片上下左右拼成一幅10*10...
matlab图片读进来的一般是rgb三通道的图片(以这个举例),是一个三维矩阵(第三维度为3),只要设一个大的矩阵,把各个小矩阵按位置赋值过去就行了。比如100个图片为img(i),i为1~100,每张图片尺寸大小28*28(或者你读图片的时候,size或者看一下图片的大小)image = ones(28*10,28*10,3);cou...

MATLAB中,对于三维矩阵,如何去掉所有全为0的列 形成新的三维矩阵
你好,很简单 for i= 列数:-1:1 b = uniqe(a(:,i))if mean(b) == 0 a(:,i) =[]end end 当然这个只是去除列。如果还有其他要求,可以参考find,Y= (G(find(G~=0)));___你好,我是第一个回答问题的。因为百度楼层问题,修改回答就会显示是在后面回答的。我把我的答案补充放到...

MATLAB的workplace中有多个三维矩阵,每个矩阵构成一条折线,请问如何把...
编个循环,每个循环中都画一条,循环结束前+ hold on 这样就在同一个图中了。不过首先你需要把80多个3*3矩阵变成一个三维矩阵,就是一个3*3*80的矩阵,然后一个个取数 比如A(:,:,i)就是取第i 个矩阵

matlab中运行程序出现索引超出矩阵维度,怎么修改.
首先打开电脑上的“matlab”软件,主界面如下图所示,在命令行输入代码即可运行。使用A=rand(2,3,3)创建一个随机三维矩阵,ndims(A)函数返回矩阵A的维度,此处输出结果为3。打开MATLAB编辑器,用其进行代码设计。使用length方便计算出未知矩阵中,行或列最大值,如果需要这种结果,就可以选用,如行数...

相似回答