2013-07-07 165 views
1

我是MATLAB和這個網站的新手。我試圖尋找這個問題,但無濟於事(所以我很抱歉,如果這最終成爲一個問題,這已經在這裏問過)。在課堂上,我們被分配了一個問題,下面的描述:「對於n維向量X,函數應該返回另一個2n維,其中每個元素重複兩次,例如:如果a = [2 3 4 5],在使用函數後,a = [2 2 3 3 4 4 5 5];「 它應該使用任意大小的向量。MATLAB:複製矢量的每個元素?

您的幫助真的很感謝! 由於

回答

2

使用kron

K = kron(X,Y)返回X和Y的克羅內克張量積的結果是通過利用X的元素,並且這些Y.如果X的之間的所有可能的產品形成了較大的陣列是米-n和Y是p-by-q,則kron(X,Y)是m * p-by-n * q。

你的情況:

kron(a,[1 1]) 

會給你你想要的

的提問一些替代答案:

reshape([a ; a],1,[]) 

reshape([a'*[1 1]]',1,[]) 
+0

非常感謝你,我真的感謝您的幫助! Kron似乎工作得很好 –

+1

我給你已經有了一般的答案,即'kron(x,y)'。使用'kron'輸入Y並參見... – bla

+0

'1:n'只是'[1 2 3 ...]'你需要[1 1 1 1 ....]',使用'ones(。 ..' – bla