MATLAB: Combinations of a vector with replacement

#combinatronics

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?

Best Answer

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))