【问题标题】:How can I combine these two arrays into a matrix?如何将这两个数组组合成一个矩阵?
【发布时间】:2011-09-17 11:23:55
【问题描述】:

在 MATLAB 中,如果我定义 2 个矩阵,例如:

A = [1:10];
B = [1:11];

如何使矩阵C 第1 列等于A 和第2 列等于B?我在网上找不到任何答案。抱歉,如果我在这种情况下使用了错误的 MATLAB 术语。

【问题讨论】:

    标签: arrays matlab matrix concatenation


    【解决方案1】:

    嗯,要做到这一点,您首先需要确保AB 的长度相同。在您的示例中,A 有 10 个元素,B 有 11 个元素,因此这是行不通的。

    但是,假设 AB 具有相同数量的元素,这样就可以解决问题:

    C = [A(:) B(:)];
    

    首先使用single-colon indexingAB 重新整形为列向量,然后使用concatenates them horizontally

    【讨论】:

    • 如果 A 和 B 是行向量,则转置运算符 ' (假设 A 和 B 是实矩阵)将完成这项工作。 A(:) 向量化A(通常表示Vec(A))
    • 如果 A 和 B 的长度不同,您可以用零(或其他数字或 NaN)填充它们,以便它们是:A((end:1):length(B)) = 0; B((end+1):长度(A)) = 0;
    【解决方案2】:

    如果A,B长度相同,则可以输入

    C=[A' B']
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多