Clear Filters
Clear Filters

Combinations of a vector with replacement

1 view (last 30 days)
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
Bruno Luong
Bruno Luong on 15 Nov 2018
Edited: Bruno Luong on 15 Nov 2018
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(:)]
klb
klb on 15 Nov 2018
thank you Bruno! I was able to modidy your code to genrate other combinations as well.

Sign in to comment.

More Answers (0)

Categories

Find more on Numeric Types in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!