Matlab,所有细胞的组合
Matlab, combinations of all cells
我需要合并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] ....}。
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
我需要合并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] ....}。
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