暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

做一个柔情的程序猿 2020-10-15
1171


点击箭头处“蓝色字”,关注我们哦!!

Matlab串联矩阵函数【horzcat】详细解析。对其语法、输入的参数进行详细讲解,同时会根据实例进行演示,最后也会列出在使用过程中可能会出现的问题。

记得点赞加关注一起happy哈~~~~~

语法

    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
                   函数。

                  —END—

                  扫码关注我

                  一起感悟科学魅力

                  点分享

                  点点赞

                  点在看

                  文章转载自做一个柔情的程序猿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                  评论