Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

horzcat

水平串联数组

说明

AB 具有兼容的大小时(除第二个维度以外,其余维度的长度均需匹配),C = horzcat(A,B) 会将 B 水平串联到 A 的末尾。

示例

C = horzcat(A1,A2,…,An) 可水平串联 A1A2、…、An

horzcat 等效于使用方括号来水平串联或追加数组。例如,当 AB 是兼容数组时,[A,B][A B]horzcat(A,B) 相同。

示例

示例

全部折叠

水平串联两个矩阵。

创建两个矩阵,并使用方括号表示法将第二个矩阵水平追加到第一个矩阵。

A = [1 2; 3 4]
A = 2×2

     1     2
     3     4

B = [4 5 6; 7 8 9]
B = 2×3

     4     5     6
     7     8     9

C = [A,B]
C = 2×5

     1     2     4     5     6
     3     4     7     8     9

现在,使用 horzcat 将第二个矩阵水平追加到第一个矩阵。

D = horzcat(A,B)
D = 2×5

     1     2     4     5     6
     3     4     7     8     9

创建一个包含三行和两个变量的表 A

A = table([5;6;5],['M';'M';'M'],...
    'VariableNames',{'Age' 'Gender'},...
    'RowNames',{'Thomas' 'Gordon' 'Percy'})
A=3×2 table
              Age    Gender
              ___    ______

    Thomas     5       M   
    Gordon     6       M   
    Percy      5       M   

创建一个包含三行和三个变量的表 B

B = table([45;41;40],[45;32;34],{'NY';'CA';'MA'},...
    'VariableNames',{'Height' 'Weight' 'Birthplace'},...
    'RowNames',{'Percy' 'Gordon' 'Thomas'})
B=3×3 table
              Height    Weight    Birthplace
              ______    ______    __________

    Percy       45        45        {'NY'}  
    Gordon      41        32        {'CA'}  
    Thomas      40        34        {'MA'}  

水平串联 ABC 中的行顺序与 A 中的顺序相匹配。

C = horzcat(A,B)
C=3×5 table
              Age    Gender    Height    Weight    Birthplace
              ___    ______    ______    ______    __________

    Thomas     5       M         40        34        {'MA'}  
    Gordon     6       M         41        32        {'CA'}  
    Percy      5       M         45        45        {'NY'}  

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

chardate = '2016-03-24';
strdate = "2016-04-19";
t = datetime('2016-05-10','InputFormat','yyyy-MM-dd');
C = horzcat(chardate,strdate,t)
C = 1x3 datetime
   24-Mar-2016   19-Apr-2016   10-May-2016

将三个字符串数组串联成一个数组。

A1 = ["str1"; "str2"];
A2 = ["str3"; "str4"];
A3 = ["str5"; "str6"];
C = horzcat(A1,A2,A3)
C = 2x3 string
    "str1"    "str3"    "str5"
    "str2"    "str4"    "str6"

创建一个包含两个矩阵的元胞数组。将元胞数组中的矩阵水平串联成一个矩阵。

M1 = [1 2; 3 4];
M2 = [5 6 7; 8 9 10];
A1 = {M1,M2};
C = horzcat(A1{:})
C = 2×5

     1     2     5     6     7
     3     4     8     9    10

输入参数

全部折叠

第一个输入,指定为标量、向量、矩阵、多维数组、表或时间表。

第二个输入,指定为标量、向量、矩阵、多维数组、表或时间表。

  • B 的元素沿第二个维度串联到第一个输入的末尾。输入参量的大小必须兼容。例如,如果第一个输入是大小为 3×2 的矩阵,则 B 必须有 3 行。

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

  • 所有时间表输入必须具有相同的行时间,且每个列必须具有不同名称。

  • 您可以串联不同类型的有效组合。有关详细信息,请参阅不同类的有效合并

输入的列表,指定为以逗号分隔的元素列表,这些元素按其在列表中指定的顺序串联。

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

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

  • 所有时间表输入必须具有相同的行时间,且每个列必须具有不同名称。

  • 您可以串联不同类型的有效组合。有关详细信息,请参阅不同类的有效合并

提示

  • 要通过水平串联字符串、字符向量或字符向量元胞数组来构造文本,请使用 strcat 函数。

  • 要从字符向量元胞数组或字符串数组构造一段带分隔符的文本,请使用 strjoin 函数。

算法

对于表输入,horzcat 通过匹配行名称(如果存在)或匹配表位置来串联。horzcat 使用输入的 DescriptionUserData 属性的第一个非空值为输出的对应属性赋值。

当将空数组串联到非空数组时,horzcat 会在输出中略去空数组。例如,horzcat([1 2],[]) 返回行向量 [1 2]

如果所有输入参量均为空且具有兼容的大小,则 horzcat 返回空数组,其大小等于输入为非空时的输出大小。例如,horzcat(zeros(0,1),zeros(0,2)) 返回 0×3 空数组。如果输入大小不兼容,则 horzcat 返回 0×0 空数组。

扩展功能

C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

版本历史记录

在 R2006a 之前推出