2011-06-05 80 views
8

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

例如:给定一个3x3矩阵

1 2 3 
4 5 6 
7 8 9 

我想将它复制的第一行,并插入作为第二行:

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

能有人建议我怎么能做到这一点在MATLAB中?谢谢!

+0

幸运的是,它是我们正在讨论的matlab,而matlab可以做所有事情:-) – 2016-01-18 10:50:41

回答

16

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

A = A([1 1 2 3],:) 
0
A = [A(1,:); A]; 
+0

不够通用。 OP给出的例子是使用第一行,但他的问题不是。对于任何选择和插入行来说,trutheality具有唯一的通用方法。 – 2014-03-07 16:53:58

3

要插入的行数source的行数target

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

我知道这是一个非常古老的话题,但是当我在寻找时,这篇文章就出现在我为同样的问题所做的搜索中特殊的Matlab函数我不记得 - padarray的名字。

所以,你可以这样做:

A = [1 2 3; 4 5 6; 7 8 9]; A = padarray(A,[1 0],'replicate','pre');

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

相关问题