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長度的整數倍。
有什麼建議嗎?
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長度的整數倍。
有什麼建議嗎?
使用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
小備註:只有當'length(a)/ length(b)'是一個整數時才能使用。 – Oleg 2013-04-29 18:13:22
@OlegKomarov不只是一個整數,而是'b'複製的長度(a)/長度(b)'必須有一個大小,可以用'a'來表示'horzcat' – Praetorian 2013-04-29 18:18:29
然後,您可以複製的載體:
[vector1, repmat(vector2,n,1)]
其中n
是您的vector2
多。
這可能是一種替代
[x [y'; y']]
我可以發誓,有這種重複,但我無法找到它。並且該解決方案使用'bsxfun'來複制比'repmat'更快的第二個向量。 – 2013-04-29 18:11:33