2014-01-14 58 views
1

行我有矩阵复制矩阵一次一个

A = [1;2;3] 

如何复制A四次,每次复制连续四次移动到下一之前,让

[1;1;1;1;2;2;2;2;3;3;3;3;4;4;4;4] 

+1

一比较多的解决方案,这个问题相当全面的名单可以在这里找到:http://stackoverflow.com/questions/14615305/a-similar-function- to-rs-rep-in-matlab – Dan

+0

从2015a开始注意最好的方法是使用内建的['repelem'](http://www.mathworks.com/help/matlab/ref/repelem.html)函数 – Dan

回答

3

在这种特定情况下,你可以做一些沿

A = [1;2;3;4]; 
B = repmat(A',4,1); 
B = B(:); 

行这样做是复制A'创建一个矩阵B

1  2  3  4 
1  2  3  4 
1  2  3  4 
1  2  3  4 

它,然后把它转换成一个单一的列使用B(:)

2

如何使用kron?这是完美的。

kron(A,ones(4, 1)) 
+0

'repmat'解决方案比'kron'更有效率(http://stackoverflow.com/questions/14615305/a-similar-function-to-rs-rep-in-matlab/14620028#14620028)以及更多直观也 – Dan

+2

@丹:“直观”:吨帽子取决于你来自哪个世界。对数学家来说,'kron'环比'repmat'更响亮。 –

+0

@RodyOldenhuis是真的,这就是为什么我在我看来说。也许我应该从我的角度来说。 – Dan