Если вам нужны только 2-элементные комбинации, вы можете использовать NDGRID .Обратите внимание, что для всех двухэлементных комбинаций до N
требуются значения N^2
, поэтому, если Matlab начнет пейджинг, процесс будет медленным.
N = 100;
[xx,yy] = ndgrid(1:N,1:N);
allCombinations = [xx(:),yy(:)];
Обратите внимание, что функция NDGRID значительно отличается от nchoosek .Первый возвращает вектор из двух строк со всеми возможными N ^ 2 комбинациями, в то время как последний пропускает комбинации из двух одинаковых элементов, а также комбинации, в которых изменяется только порядок.Ведущий к (N ^ 2-N) / 2 элементам строки.