Azzera filtri
Azzera filtri

Combinations of a vector with replacement

1 visualizzazione (ultimi 30 giorni)
klb
klb il 13 Nov 2018
Commentato: klb il 15 Nov 2018
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?

Risposta accettata

Bruno Luong
Bruno Luong il 13 Nov 2018
Modificato: Bruno Luong il 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 Commenti
Bruno Luong
Bruno Luong il 15 Nov 2018
Modificato: Bruno Luong il 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 il 15 Nov 2018
thank you Bruno! I was able to modidy your code to genrate other combinations as well.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Numeric Types in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by