我有两个不同长度的向量:
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
我有两个不同长度的向量:
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
这个问题不是很清楚,但是如果你想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
在我看来,您想将向量 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));