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