-3

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

 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
4

2 回答 2

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
于 2013-05-28T13:41:59.540 回答
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)); 
于 2013-05-28T13:41:27.067 回答