Combinations of a vector with replacement

Hello everyone. A = [2 3 4]. I am trying to generate these 2 combinations:
  1. 22, 23 ,24 ,32 ,33 ,34, 42 ,43 ,44 (order matters so 23 not equal to 32 so nchoosek(A,2) does not work)
  2. 222, 233, 232, 234, 243, 333, 322, 323, 344, 343 , 324,342, 422, 424, 433 ,434 , 432, 423, 444. perms(A) does not do the job here because it is without replacement.
how can I do these?

 Accepted Answer

Bruno Luong
Bruno Luong on 13 Nov 2018
Edited: Bruno Luong on 13 Nov 2018
A = [2 3 4]
[A1,A2] = ndgrid(A);
arrayfun(@(k) polyval([A2(k),A1(k)],10), 1:numel(A1))
[A1,A2,A3] = ndgrid(A);
arrayfun(@(k) polyval([A3(k),A2(k),A1(k)],10), 1:numel(A1))

3 Comments

thank you! ..i should have put in the spaces becasue what is expcted are 2 matrices. with combinations. maybe ill just num2str and str2num the amswer. thanks.
Keep telling you guys of putting more care on your question.
If you want a space then put a space.[2 2 3] is not 223.
A = [2 3 4]
[A1,A2,A3] = ndgrid(A);
[A3(:),A2(:),A1(:)]
thank you Bruno! I was able to modidy your code to genrate other combinations as well.

Sign in to comment.

More Answers (0)

Categories

Asked:

as
on 13 Nov 2018

Commented:

as
on 15 Nov 2018

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!