如何确定随机数向量的所有组合?
How to determine all combinations of a random number of vectors?
我有 n 个带有一些数字的向量(n 是一个随机数)
我如何确定我拥有的所有数字的所有组合?
例如:
a=0;
for i=1:length(vector1)
for j=1:length(vector2)
for k=1:length(vector3)
... (n times)
a=a+1;
M{a}=[i,j,k,...];
end
end
end
一种可能combvec
。此函数为您提供输入矩阵的列向量的所有组合。您可以执行以下操作来获取随机向量中元素的组合。
vector1 = random('Normal', 0, 1, 1, 5);
vector2 = random('Normal', 0, 1, 1, 5);
vector3 = random('Normal', 0, 1, 1, 5);
M = combvec(vector1, vector2, vector3);
M
将是一个 3x125 矩阵,其中每一列是 vector1
中的一个元素、vector2
中的一个元素和 vector3
[=21= 中的一个元素]
如果您需要 n
个向量,其中 n
是一个随机数,另一种方法是使用 cartesian product 对向量进行索引。
n = randi(5);
all_vectors = random('Normal', 0, 1, n, 5);
indices = mat2cell(repmat([1:5], n, 1), ones(n ,1))';
[x y z] = ndgrid(indices{:});
cartProd = [x(:), y(:), z(:)];
M = all_vectors(cartProd);
我有 n 个带有一些数字的向量(n 是一个随机数) 我如何确定我拥有的所有数字的所有组合? 例如:
a=0;
for i=1:length(vector1)
for j=1:length(vector2)
for k=1:length(vector3)
... (n times)
a=a+1;
M{a}=[i,j,k,...];
end
end
end
一种可能combvec
。此函数为您提供输入矩阵的列向量的所有组合。您可以执行以下操作来获取随机向量中元素的组合。
vector1 = random('Normal', 0, 1, 1, 5);
vector2 = random('Normal', 0, 1, 1, 5);
vector3 = random('Normal', 0, 1, 1, 5);
M = combvec(vector1, vector2, vector3);
M
将是一个 3x125 矩阵,其中每一列是 vector1
中的一个元素、vector2
中的一个元素和 vector3
[=21= 中的一个元素]
如果您需要 n
个向量,其中 n
是一个随机数,另一种方法是使用 cartesian product 对向量进行索引。
n = randi(5);
all_vectors = random('Normal', 0, 1, n, 5);
indices = mat2cell(repmat([1:5], n, 1), ones(n ,1))';
[x y z] = ndgrid(indices{:});
cartProd = [x(:), y(:), z(:)];
M = all_vectors(cartProd);