可能的重复:
Matlab - 生成某些向量元素的所有可能组合 https://stackoverflow.com/questions/4165859/matlab-generate-all-possible-combinations-of-the-elements-of-some-vectors
假设我有三套:
A = [5 6 7]
B = [0 1]
C = [11 22 33]
我想创建一个 MATLAB 函数,它可以采用任意数量的此类集合并吐出它们的所有组合。在上面的例子中,它会吐出一些类似于
[5 0 11
5 0 22
5 0 33
5 1 11
5 1 22
5 1 33
...
7 1 33]
我可以考虑做这样的事情的唯一方法是使用嵌套的 for 循环,如下所示:
output = zeros(length(A)*length(B)*length(C), 3)
row = 1
for i = 1:length(A)
for j = 1:length(B)
for k = 1:length(C)
output(row,:) = [A(i) B(j) C(k)];
row = row + 1;
end
end
end
当然,如果不事先指定组数,这将不起作用 - 所以我想知道是否有一个简单的修复或另一种更聪明的方法来解决这个问题?
尝试从 MATLAB 文件交换中使用 allcomb
allcomb http://www.mathworks.com/matlabcentral/fileexchange/10064
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)