2013-07-10 123 views
-1

我必須將數字列表(例如4 1 3 2)轉換爲相同數字的列表,但每個數字有多個副本(並且它們必須按特定順序)(例如4 4 4 4 1 1 1 1 3 3 3 3 2 2 2 2)通過循環在matlab中創建多個矩陣

現在我的計劃是製作一個4x1的矩陣(如a = [4 4 4 4]),但我無法爲列表中的每個數字進行此運行。我做了一個函數,取值(4),並通過循環在4x1中生成一個包含4個副本的矩陣。

我可以做一個循環,爲列表中的每個數字運行此副本?

aftewrads我想我可以使用vertcat將所有矩陣合併到我正在尋找的列表中。

的感謝!

+0

[MATLAB的可能重複:複製每個向量的元素?](http://stackoverflow.com/questions/17509090/matlab-duplicate-each-element-of-av ector) – bla

+0

and ... http://stackoverflow.com/questions/14576007/how-to-double-the-size-of-a-matrix-and-propagate-its-elements-in-matlab/14576141#14576141 – bla

+0

和... http://stackoverflow.com/questions/17522568/matlab-copying-the-rows-n-times-in-order/17522639#comment25479393_17522639 – bla

回答

1

無論如何都不需要循環。

隨着在val = [4 1 3 2]repmat()reshape()每個條目恆定長度

len = 4; 
reshape(repmat(val,len,1),1,[]) 

可變長度,解碼與FEX:rude()

len = [1 2 3 4]; 
rude(len,val) 
+0

+1真的不需要任何循環 – Schorsch