复制矩阵的行或列,并将其插入下一行/列

时间:2011-06-05 23:04:24

标签: matlab matrix copy

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

例如:给定3x3矩阵

1 2 3
4 5 6
7 8 9

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

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

有人可以建议我如何在MATLAB中实现这一目标吗?谢谢!

4 个答案:

答案 0 :(得分:16)

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

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

答案 1 :(得分:3)

要将行号source插入行号target

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

答案 2 :(得分:0)

A = [A(1,:); A];

答案 3 :(得分:0)

我知道这是一个非常古老的主题,但是当我在寻找一个特定的Matlab函数时,这个帖子出现在我为同样的问题做的搜索中,我不记得了 - padarray的名字。

所以,你可以这样做:

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

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

这通常很有用,例如,如果A是您未明确保存的函数的输出,那么您不知道第一行是什么。无论如何,希望这有助于某人!