Генерация всех комбинаций с повторением с использованием MATLAB

Как мне создать всеk-комбинации с повторениями данного набора (также называетсяк-multicombinations или жеmultisubsets) используя MATLAB?

Это похоже на декартово произведение, но две строки, отличающиеся только сортировкой, следует считать одинаковыми (например, векторы[1,1,2]=~=[1,2,1] считаются одинаковыми), поэтому генерирует декартово произведение и затем применяетunique(sort(cartesianProduct,2),'rows') должен дать такие же результаты.

Пример: Вызовnmultichoosek(1:n,k) должен сгенерировать следующую матрицу:

nmultichoosek(1:3,3)
ans =
     1     1     1
     1     1     2
     1     1     3
     1     2     2
     1     2     3
     1     3     3
     2     2     2
     2     2     3
     2     3     3
     3     3     3

Ответы на вопрос(1)

Ваш ответ на вопрос