vertcat
垂直串联数组
说明
C = vertcat(
垂直串联 A1,A2,…,An
)A1
、A2
、…、An
。
vertcat
等效于使用方括号垂直串联或追加数组。例如,当 A
和 B
是兼容数组时,[A; B]
与 vertcat(A,B)
相同。
示例
两个矩阵
垂直串联两个矩阵。
创建两个矩阵,并使用方括号表示法将第二个矩阵垂直追加到第一个矩阵。
A = [1 2 3; 4 5 6]
A = 2×3
1 2 3
4 5 6
B = [7 8 9]
B = 1×3
7 8 9
C = [A; B]
C = 3×3
1 2 3
4 5 6
7 8 9
现在,使用 vertcat
将第二个矩阵垂直追加到第一个矩阵。
D = vertcat(A,B)
D = 3×3
1 2 3
4 5 6
7 8 9
两个表
创建一个表 A
,它包含三行五个变量。
A = table([5;6;5],['M';'M';'M'],[45;41;40],[45;32;34],{'NY';'CA';'MA'},... 'VariableNames',{'Age' 'Gender' 'Height' 'Weight' 'Birthplace'},... 'RowNames',{'Thomas' 'Gordon' 'Percy'})
A=3×5 table
Age Gender Height Weight Birthplace
___ ______ ______ ______ __________
Thomas 5 M 45 45 {'NY'}
Gordon 6 M 41 32 {'CA'}
Percy 5 M 40 34 {'MA'}
创建一个表 B
,它包含的变量与 A
相同(顺序除外)。
B = table(['F';'M';'F'],[6;6;5],{'AZ';'NH';'CO'},[31;42;33],[39;43;40],... 'VariableNames',{'Gender' 'Age' 'Birthplace' 'Weight' 'Height'})
B=3×5 table
Gender Age Birthplace Weight Height
______ ___ __________ ______ ______
F 6 {'AZ'} 31 39
M 6 {'NH'} 42 43
F 5 {'CO'} 33 40
垂直串联表 A
和 B
。C
变量的顺序与 A
变量的顺序相同,默认行名称用于 B
中的行。
C = vertcat(A,B)
C=6×5 table
Age Gender Height Weight Birthplace
___ ______ ______ ______ __________
Thomas 5 M 45 45 {'NY'}
Gordon 6 M 41 32 {'CA'}
Percy 5 M 40 34 {'MA'}
Row4 6 F 39 31 {'AZ'}
Row5 6 M 43 42 {'NH'}
Row6 5 F 40 33 {'CO'}
具有不同类型的日期
将日期字符向量、字符串日期和日期时间串联成一个日期列。结果是一个日期时间列向量。
chardate = '2016-03-24'; strdate = "2016-04-19"; t = datetime('2016-05-10','InputFormat','yyyy-MM-dd'); C = vertcat(chardate,strdate,t)
C = 3x1 datetime
24-Mar-2016
19-Apr-2016
10-May-2016
字符串数组
将三个字符串数组串联成一个数组。
A1 = ["str1" "str2"]; A2 = ["str3" "str4"]; A3 = ["str5" "str6"]; C = vertcat(A1,A2,A3)
C = 3x2 string
"str1" "str2"
"str3" "str4"
"str5" "str6"
元胞数组中的矩阵
创建一个包含两个矩阵的元胞数组。将元胞数组中的矩阵垂直串联成一个矩阵。
M1 = [1 2; 3 4]; M2 = [5 6; 7 8]; A1 = {M1,M2}; C = vertcat(A1{:})
C = 4×2
1 2
3 4
5 6
7 8
输入参数
A
— 第一个输入
标量 | 向量 | 矩阵 | 多维数组 | 表 | 时间表
第一个输入,指定为标量、向量、矩阵、多维数组、表或时间表。
B
— 第二个输入
标量 | 向量 | 矩阵 | 多维数组 | 表 | 时间表
第二个输入,指定为标量、向量、矩阵、多维数组、表或时间表。
B
的元素沿第一个维度串联到第一个输入的末尾。输入参数的大小必须兼容。例如,如果第一个输入是大小为 3×2 的矩阵,则B
必须有 2 列。您可以串联不同类型的有效组合。有关详细信息,请参阅不同类的有效合并。
A1,A2,…,An
— 输入列表
逗号分隔的列表
List of inputs, specified as a comma-separated list of elements to concatenate in the order they are specified.
输入必须具有兼容的大小。例如,如果
A1
是长度为 m 的行向量,则其余输入必须各有 m 列才可进行垂直串联。您可以串联不同类型的有效组合。有关详细信息,请参阅不同类的有效合并。
算法
当将空数组串联到非空数组时,vertcat
会在输出中略去空数组。例如,vertcat([1; 2],[])
返回列向量 [1; 2]
。
如果所有输入参数均为空且具有兼容的大小,则 vertcat
返回空数组,其大小等于输入为非空时的输出大小。例如,vertcat(zeros(1,0),zeros(2,0))
返回 3×0 空数组。如果输入大小不兼容,则 vertcat
返回 0×0 空数组。
扩展功能
tall 数组
对行数太多而无法放入内存的数组进行计算。
用法说明和限制:
不支持对字符数组进行垂直串联。
垂直串联两个 tall 数组时,将得到一个所依据的数据存储不同于输入 tall 数组的 tall 数组。因此,如果尝试将串联结果与其中一个输入 tall 数组进行组合,这些数组将不兼容。例如,以下命令将生成错误,因为原始 tall 表
T
基于一个数据存储,而串联操作的输出基于另一个数据存储:T.Var3 = [T.Var1(1); T.Var2(2:end)]
或者,如果仅将内存中的值串联为一个 tall 数组,则串联结果将基于同一数据存储。例如,如果将前一示例中的
T.Var1(1)
替换为一个内存标量,则可执行以下命令:T.Var3 = [0; T.Var2(2:end)]
有关详细信息,请参阅tall 数组。
C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。
基于线程的环境
使用 MATLAB® backgroundPool
在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool
加快代码运行速度。
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
GPU 数组
通过使用 Parallel Computing Toolbox™ 在图形处理单元 (GPU) 上运行来加快代码执行。
此函数完全支持 GPU 数组。有关详细信息,请参阅Run MATLAB Functions on a GPU (Parallel Computing Toolbox)。
分布式数组
使用 Parallel Computing Toolbox™ 在集群的组合内存中对大型数组进行分区。
此函数完全支持分布式数组。有关详细信息,请参阅Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox)。
版本历史记录
在 R2006a 之前推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)