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 = 3×1 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 = 3×2 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
输入参数
第一个输入,指定为标量、向量、矩阵、多维数组、表或时间表。
第二个输入,指定为标量、向量、矩阵、多维数组、表或时间表。
B
的元素沿第一个维度串联到第一个输入的末尾。输入参量的大小必须兼容。例如,如果第一个输入是大小为 3×2 的矩阵,则B
必须有 2 列。所有表输入必须有唯一的行名称。如果某些表输入没有行名称,
vertcat
会为输出填充默认行名称。每个表输入中的变量名称必须相同,但变量的顺序可以不同。vertcat
通过匹配变量名称进行串联。对于表输入,vertcat
还串联RowNames
属性值。使用对应输入的第一个非空(或非默认)属性值来赋予输出表的其他属性值。时间表输入的行时间不需要唯一。每个时间表输入中的变量名称必须相同,但变量的顺序可以不同。
vertcat
通过匹配变量名称进行串联。对于时间表输入,vertcat
还会串联RowTimes
属性值和关联到输入的事件。使用对应输入的第一个非空(或非默认)属性值来赋予输出时间表的其他属性值。您可以串联不同类型的有效组合。有关串联字符数组、逻辑数组和数值类型的详细信息,请参阅不同类的有效合并。
输入的列表,指定为以逗号分隔的元素列表,这些元素按其在列表中指定的顺序串联。
输入必须具有兼容的大小。例如,如果
A1
是长度为 m 的行向量,则其余输入必须各有 m 列才可进行垂直串联。所有表输入必须有唯一的行名称。如果某些表输入没有行名称,
vertcat
会为输出填充默认行名称。每个表输入中的变量名称必须相同,但变量的顺序可以不同。vertcat
通过匹配变量名称进行串联。对于表输入,vertcat
还串联RowNames
属性值。使用对应输入的第一个非空(或非默认)属性值来赋予输出表的其他属性值。时间表输入的行时间不需要唯一。每个时间表输入中的变量名称必须相同,但变量的顺序可以不同。
vertcat
通过匹配变量名称进行串联。对于时间表输入,vertcat
还会串联RowTimes
属性值和关联到输入的事件。使用对应输入的第一个非空(或非默认)属性值来赋予输出时间表的其他属性值。您可以串联不同类型的有效组合。有关串联字符数组、逻辑数组和数值类型的详细信息,请参阅不同类的有效合并。
算法
当将空数组串联到非空数组时,vertcat
会在输出中略去空数组。例如,vertcat([1; 2],[])
返回列向量 [1; 2]
。
如果所有输入参量均为空且具有兼容的大小,则 vertcat
返回空数组,其大小等于输入为非空时的输出大小。例如,vertcat(zeros(1,0),zeros(2,0))
返回 3×0 空数组。如果输入大小不兼容,则 vertcat
返回 0×0 空数组。
扩展功能
vertcat
函数支持 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 函数。
vertcat
函数支持 GPU 数组输入,但有以下用法说明和限制:
不支持稀疏矩阵。
有关详细信息,请参阅在 GPU 上运行 MATLAB 函数 (Parallel Computing Toolbox)。
此函数完全支持分布式数组。有关详细信息,请参阅使用分布式数组运行 MATLAB 函数 (Parallel Computing Toolbox)。
版本历史记录
在 R2006a 之前推出
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- 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)