目录
cat串联数组
语法
C = cat(dim,A,B)
C = cat(dim,A1,A2,…,An)
说明
当 A 和 B 具有兼容的大小(除运算维度 dim 以外的维度长度匹配)时,C = cat(dim,A,B) 沿维度 dim 将B串联到A的末尾。
C = cat(dim,A1,A2,...,An) 沿维度dim串联A1、A2、…、An。
可以使用方括号运算符
[]
进行串联。例如,[A,B]
或[A B]
将水平串联数组A
和B
,而[A; B]
将垂直串联它们。
示例
两个矩阵
创建两个矩阵,先垂直串联这两个矩阵,然后再水平串联。
A = ones(3)
A = 3×3
1 1 1
1 1 1
1 1 1
B = zeros(3)
B = 3×3
0 0 0
0 0 0
0 0 0
C1 = cat(1,A,B)
C1 = 6×3
1 1 1
1 1 1
1 1 1
0 0 0
0 0 0
0 0 0
C2 = cat(2,A,B)
C2 = 3×6
1 1 1 0 0 0
1 1 1 0 0 0
1 1 1 0 0 0
三维数组
创建两个三维数组,并沿第三个维度串联它们。所得数组中第一个和第二个维度的长度与输入数组中对应的长度匹配,而第三个维度会扩展。
A = rand(2,3,4);
B = rand(2,3,5);
C = cat(3,A,B);
szC = size(C)
szC = 1×3
2 3 9
扩展表
创建一个表并使用元胞数组添加一个行。
LastName = {'Sanchez';'Johnson';'Li';'Diaz'};
Age = [38;43;38;40];
T1 = table(LastName,Age)
T1=4×2 table
LastName Age
___________ ___
{'Sanchez'} 38
{'Johnson'} 43
{'Li' } 38
{'Diaz' } 40
Trow = {'Brown',49};
T2 = cat(1,T1,Trow)
T2=5×2 table
LastName Age
___________ ___
{'Sanchez'} 38
{'Johnson'} 43
{'Li' } 38
{'Diaz' } 40
{'Brown' } 49
具有不同类型的日期
将日期字符向量、字符串日期和日期时间串联成一个日期列。结果为一个日期时间向量。
chardate = '2016-03-24';
strdate = "2016-04-19";
t = datetime('2016-05-10','InputFormat','yyyy-MM-dd');
C = cat(1,chardate,strdate,t)
C = 3x1 datetime
24-Mar-2016
19-Apr-2016
10-May-2016
元胞数组中的矩阵
创建一个包含两个矩阵的元胞数组,并分别以垂直方式和水平方式串联这两个矩阵。
M1 = [1 2; 3 4];
M2 = [5 6; 7 8];
A1 = {M1,M2};
Cvert = cat(1,A1{:})
Cvert = 4×2
1 2
3 4
5 6
7 8
Chorz = cat(2,A1{:})
Chorz = 2×4
1 2 5 6
3 4 7 8
提示
-
要通过水平串联字符串、字符向量或字符向量元胞数组来构造文本,可以使用strcat函数。
-
要从字符向量元胞数组或字符串数组构造一段带分隔符的文本,可以使用strjoin函数。
算法
当将空数组串联到非空数组时,cat
会在输出中略去空数组。例如,cat(2,[1 2],[])
返回行向量 [1 2]
。
如果所有输入参数均为空且具有兼容的大小,则 cat
返回空数组,其大小等于输入为非空时的输出大小。例如,cat(2,zeros(0,1),zeros(0,2))
返回 0×3 空数组。