【问题标题】:Copy a row or column of a matrix and insert it in the next row/column复制矩阵的一行或一列并将其插入下一行/列
【发布时间】:2011-06-05 23:04:23
【问题描述】:

我想知道在 MATLAB 中是否有一种简单的方法来执行以下操作:我想复制矩阵的行或列并将其插入下一行/列中。

例如:给定一个 3x3 矩阵

1 2 3
4 5 6
7 8 9

我想复制第一行并将其作为第二行插入:

1 2 3
1 2 3
4 5 6
7 8 9

有人可以建议我如何在 MATLAB 中完成此任务吗?谢谢!

【问题讨论】:

  • 幸好我们说的是matlab,matlab什么都能做:-)

标签: matlab matrix copy


【解决方案1】:

您可以简单地重复要重复的行的索引

A = A([1 1 2 3],:)

【讨论】:

    【解决方案2】:

    插入行号source作为行号target

    A = [A(1:target-1,:); A(source,:); A(target:end,:)];
    

    【讨论】:

      【解决方案3】:
      A = [A(1,:); A];
      

      【讨论】:

      • 不够笼统。 OP给出的例子是使用第一行,但他的问题不是。真实性具有适用于任何选择和插入行的唯一通用方法。
      【解决方案4】:

      我知道这是一个非常老的话题,但是当我在寻找一个特定的 Matlab 函数时,我在搜索相同的问题时发现了这篇文章,但我不记得 --padarray 的名称了。

      所以,你可以这样做:

      A = [1 2 3; 4 5 6; 7 8 9];

      A = padarray(A,[1 0],'replicate','pre');

      这通常很有帮助,例如,如果 A 是您没有明确保存的函数的输出,因此您不知道第一行是什么。无论如何,希望这对某人有所帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-12-20
        • 1970-01-01
        • 2021-07-27
        • 1970-01-01
        • 1970-01-01
        • 2014-07-21
        • 2019-04-13
        • 2019-02-13
        相关资源
        最近更新 更多