matlab穷尽排列组合

比如现在有三个数组, A,B,C, 每个数组里有若干个数.
我们想在ABC中任意抽一个, 组成一个三元组. 一共有numel(A)*numel(B)*numel©种方法.
最朴素的方法就是用三个for循环, 但是时间复杂度为0(n)^3.

我们可以借助ndgrid函数来做. ndgrid本来是用来生成坐标和网格的.

[X,Y,Z]=ndgrid(A,B,C);
COM=[X(:),Y(:),Z(:)];

将XYZ拼在一起即可.

相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页