2011-06-05 70 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是沒有明確保存的函數的輸出,那麼這通常很有用,因此您不知道第一行是什麼。無論如何,希望這可以幫助別人!

相關問題