【发布时间】:2015-03-17 05:46:22
【问题描述】:
我需要将所有长度不同的 n 个(随机)数组的数据组合起来。 前任: a=[1 3 2 7 8], b=[2 5 3 9] 和 c=[5 6] 也许我们有 d, e, f 等等.... 我需要所有元素的组合,例如: M={[1 2 5], [1 2 6], [1 5 5], [1 5 6], [1 3 5], [1 3 6] ....}。
【问题讨论】:
标签: matlab combinations
我需要将所有长度不同的 n 个(随机)数组的数据组合起来。 前任: a=[1 3 2 7 8], b=[2 5 3 9] 和 c=[5 6] 也许我们有 d, e, f 等等.... 我需要所有元素的组合,例如: M={[1 2 5], [1 2 6], [1 5 5], [1 5 6], [1 3 5], [1 3 6] ....}。
【问题讨论】:
标签: matlab combinations
3个数组的解决方案:
[A,B,C] = meshgrid(a, b, c);
M = [A(:), B(:), C(:)];
n 数组在短维度 n 上迭代的解决方案:
a=[1 3 2 7 8];
b=[2 5 3 9];
c=[5 6];
d=[1 3 5];
arrays = { a, b, c, d };
M = a';
for i = 2:length(arrays)
A1 = M;
A2 = arrays{i}';
[i1, i2] = meshgrid(1:length(A1), 1:length(A2));
M = [A1(i1(:), :) A2(i2(:))];
end
【讨论】: