如何配对不同长度的矢量?

时间:2013-05-28 13:28:55

标签: matlab

我有两个不同长度的向量:

 a=[1 2 3 4 5 6 7 8 9 10]
 b=[1 2 3 4 5]

有没有办法像这种随机组合一样匹配和组合它们?

        A    B
        1    2
        2    3
        3    5
        4    3
        5    2
        6    1
        7    3
        8    5
        9    2 
        10   1

2 个答案:

答案 0 :(得分:4)

问题不是很明确,但如果您想从向量a中抽取10个值(b的长度),则可以使用randsample函数替换你有统计工具箱:

[a; b(randsample(numel(b),numel(a),true))]

ans =

     1     2     3     4     5     6     7     8     9    10
     1     5     5     3     5     1     3     5     4     5

如果您没有统计工具箱,您可以轻松自己生成索引:

[a; b(randi(numel(b),size(a)))]

ans =

     1     2     3     4     5     6     7     8     9    10
     4     1     2     1     1     4     4     2     5     1

答案 1 :(得分:0)

听起来我想要将矢量A中的每个元素与矢量B中的元素配对。

这样做的一种方法如下:

%replicate B so that it is at least as big as A
c = repmat(b, 1, ceil(length(a)./length(b)));

% randomly shuffle the resulting vector
c = c(randperm(length(c)));

% crop it to the same length as A
c = c(1:length(a));