2013-04-29 146 views
0

MATLAB串聯矢量可以說,我已經得到了向量1:不等尺寸

2 
3 
5 
6 
7 
9 

並有vector2:

1 
2 
3 

現在我想獲得以下矩陣:

2 1 
3 2 
5 3 
6 1 
7 2 
9 3 

也就是說,我想添加vector2作爲vector1旁邊的列,直到新列被完全填充。我必須用大量不同大小的載體來做到這一點。我事先知道的唯一事情是vector1的長度是vector2長度的整數倍。

有什麼建議嗎?

+0

我可以發誓,有這種重複,但我無法找到它。並且該解決方案使用'bsxfun'來複制比'repmat'更快的第二個向量。 – 2013-04-29 18:11:33

回答

2

使用repmat複製較小的矩陣。

a = [2 3 5 6 7 9]'; 
b = [1 2 3]'; 
c = [a repmat(b, length(a)/length(b), 1)] 

結果:

c = 

    2  1 
    3  2 
    5  3 
    6  1 
    7  2 
    9  3 
+0

小備註:只有當'length(a)/ length(b)'是一個整數時才能使用。 – Oleg 2013-04-29 18:13:22

+0

@OlegKomarov不只是一個整數,而是'b'複製的長度(a)/長度(b)'必須有一個大小,可以用'a'來表示'horzcat' – Praetorian 2013-04-29 18:18:29

0

然後,您可以複製的載體:

[vector1, repmat(vector2,n,1)] 

其中n是您的vector2多。

0

這可能是一種替代

[x [y'; y']]