MATLAB不等维串联向量
假设我有矢量1:MATLAB不等维串联向量,matlab,Matlab,假设我有矢量1: 2 3 5 6 7 9 和矢量2: 1 2 3 现在,我想获得以下矩阵: 2 1 3 2 5 3 6 1 7 2 9 3 也就是说,我想将vector2作为列添加到vector1旁边,直到新列完全填充为止。我必须用很多不同大小的向量来做这个。我只知道向量1的长度是向量2长度的整数倍 有什么建议吗?然后您可以复制向量: [vector1, repmat(vector2,n,1)] 其中n是向量2的倍数,用于复制较小的矩阵 a=[2 3 5 6 7
2
3
5
6
7
9
和矢量2:
1
2
3
现在,我想获得以下矩阵:
2 1
3 2
5 3
6 1
7 2
9 3
也就是说,我想将vector2作为列添加到vector1旁边,直到新列完全填充为止。我必须用很多不同大小的向量来做这个。我只知道向量1的长度是向量2长度的整数倍
有什么建议吗?然后您可以复制向量:
[vector1, repmat(vector2,n,1)]
其中n
是向量2
的倍数,用于复制较小的矩阵
a=[2 3 5 6 7 9];
b=[1 2 3]';
c=[a代表(b,长度(a)/长度(b,1)]
结果:
c =
2 1
3 2
5 3
6 1
7 2
9 3
这可能是另一种选择
[x [y'; y']]
我可以发誓这有一个副本,但我就是找不到。解决方案使用
bsxfun
来复制第二个向量,它比repmat
快。小注:只有length(a)/length(b)
是一个整数时,这才有效。@OlegKomarov不仅仅是一个整数,而且是b
replicatedlength(a)/length(b)
的大小必须可以是horzcat
ted和a