Matlab串联矩阵函数【horzcat】详细解析

·  阅读 895

语法

C = horzcat(A,B)
C = horzcat(A1,A2,…,An)
复制代码

输入参数

A - 第一个输入

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

B - 第二个输入

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

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

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

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

A1,A2,…,An - 输入列表

逗号分隔的列表

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

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

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

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

说明

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

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

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

实例

两个矩阵

创建两个矩阵并水平串联它们 - 首先使用方括号表示法串联,然后使用 horzcat 串联。

>> A=magic(5);
>> A(4:5,:)=[]

A =

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22

>> B=magic(3)*100

B =

   800   100   600
   300   500   700
   400   900   200

>> C=[A,B]

C =

    17    24     1     8    15   800   100   600
    23     5     7    14    16   300   500   700
     4     6    13    20    22   400   900   200

>> D = horzcat(A,B)

D =

    17    24     1     8    15   800   100   600
    23     5     7    14    16   300   500   700
     4     6    13    20    22   400   900   200

>> 
复制代码

两个表

创建一个带有三行和两个变量的表 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'}  
复制代码

然后水平串联 A 和 B。C 中的行顺序与 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 = '2020-03-24';
>> strdate = "2020-04-19";
>> t = datetime('2020-05-10','InputFormat','yyyy-MM-dd');
>> C = horzcat(chardate,strdate,t)

C = 1x3 datetime
   24-Mar-2020   19-Apr-2020   10-May-2020
复制代码

字符串数组

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

>> 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
复制代码

提示

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

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

资源传送门

  1. 关注【做一个柔情的程序猿】公众号
  2. 在【做一个柔情的程序猿】公众号后台回复 【python资料】【2020秋招】 即可获取相应的惊喜哦!

「❤️ 感谢大家」

  1. 点赞支持下吧,让更多的人也能看到这篇内容(收藏不点赞,都是耍流氓 -_-)
  2. 欢迎在留言区与我分享你的想法,也欢迎你在留言区记录你的思考过程。
分类:
代码人生
标签:
分类:
代码人生
标签:
收藏成功!
已添加到「」, 点击更改