Gerando todas as combinações com repetição usando o MATLAB

Como crio tudocombinações k com repetições de um determinado conjunto (também chamadok-multicombinações oumultisubsets) usando o MATLAB?

Isso é semelhante ao produto cartesiano, mas duas linhas que diferem apenas por sua classificação devem ser consideradas iguais (por exemplo, os vetores[1,1,2]=~=[1,2,1] são considerados iguais), gerando o produto cartesiano e aplicandounique(sort(cartesianProduct,2),'rows') deve produzir os mesmos resultados.

Exemplo: A chamadanmultichoosek(1:n,k) deve gerar a seguinte matriz:

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

questionAnswers(3)

yourAnswerToTheQuestion