2026a

# cat


串联数组

# 语法

C = cat(A,B,dims = dims)
C = cat(A1,A2,...,An,dims = dims)

# 说明

当 A 和 B 具有兼容的大小(除运算维度 dims 以外的维度长度匹配)时,C = cat(A,B,dims=dims)沿维度dims将B串联到A的末尾。示例


C = cat(A1,A2,…,An,dims=dims)沿维度dims串联A1、A2、…、An。示例

您可以使用方括号运算符 [] 进行串联。例如,[A B] 将水平串联数组 A 和 B,而 [A; B] 将垂直串联它们。

# 示例

两个矩阵

创建两个矩阵,先垂直串联这两个矩阵,然后再水平串联。

A = ones(3,3)
A = 3×3 Matrix{Float64}:
1.0   1.0   1.0
1.0   1.0   1.0
1.0   1.0   1.0
B = zeros(3,3)
B = 3×3 Matrix{Float64}:
0.0   0.0   0.0
0.0   0.0   0.0
0.0   0.0   0.0
C1 = cat(A,B,dims = 1)
C1 = 6×3 Matrix{Float64}:
1.0   1.0   1.0
1.0   1.0   1.0
1.0   1.0   1.0
0.0   0.0   0.0
0.0   0.0   0.0
0.0   0.0   0.0
C2 = cat(A,B,dims = 2)
C2 = 3×6 Matrix{Float64}:
1.0  1.0  1.0  0.0  0.0  0.0
1.0  1.0  1.0  0.0  0.0  0.0
1.0  1.0  1.0  0.0  0.0  0.0
三维数组

创建两个三维数组,并沿第三个维度串联它们。所得数组中第一个和第二个维度的长度与输入数组中对应的长度匹配,而第三个维度会扩展。

A = rand(2,3,4)
B = rand(2,3,5)
C = cat(A,B,dims = 3)
szC = size(C)
szC = (2, 3, 9)
日期

将日期字符向量、字符串日期和日期时间串联成一个日期列。结果为一个日期时间向量。

using TyBase
date1 = Date(2021,1,10)
date2 = Date(2021,2,14)
t = Date(2021,3,20)
C = cat(date1,date2,t,dims = 1)
C = 3-element Vector{Date}:
2021-01-10
2021-02-14
2021-03-20

# 输入参数

dims-沿其运算的维度
正整数标量

沿其运算的维度,指定为正整数标量,且 “dims = ” 的关键字参数不可省略。

例如,如果 A 和 B 均为 2×2 矩阵,则 cat(A,B,dims = 1) 将垂直串联成一个 4×2 矩阵。cat(A,B,dims = 2) 将水平串联成一个 2×4 矩阵。

A-第一个输入
标量 | 向量 | 矩阵 | 多维数组 | 元组 | 结构体

第一个输入,可以为标量、向量、矩阵、多维数组、元组、结构体等。

B-第二个输入
标量 | 向量 | 矩阵 | 多维数组 | 元组 | 结构体

第二个输入,可以为标量、向量、矩阵、多维数组、元组、结构体等。

B 的元素沿运算维度串联到第一个输入的末尾。输入参数的大小必须兼容。例如,如果第一个输入是大小为 3×2 的矩阵,则 B 必须有 2 列才可进行垂直串联,必须有 3 行才可进行水平串联。

A1,A2,…,An-输入列表
逗号分隔的列表

输入的列表,指定为以逗号分隔的一系列数组,这些数组等按列表中的指定顺序串联。

输入必须具有兼容的大小。例如,如果 A1 是长度为 m 的行向量,则其余输入必须各有 m 列才可进行垂直串联。

水平串联时,所有表输入都必须有唯一的变量名称。如果有行名称,则它们必须完全相同(顺序除外)。

# 另请参阅

hcat | vcat