Combinations with a condition

I have 4 vectors as shown below. I want to create a matrix that list all the possible combinations with the condition that
x = [0 1 2 3 4 5 6]
x1 = [0 3 6]
x2 = [0 3 6]
x3 = [0 3 6]

 Risposta accettata

John D'Errico
John D'Errico il 10 Feb 2023
Modificato: John D'Errico il 10 Feb 2023
Easy enough.
x = 0:6;
[x1,x2,x3] = ndgrid([0 3 6]);
x123 = [x1(:),x2(:),x3(:)];
ind = ismember(sum(x123,2),3*x);
x123(ind,:)
ans = 27×3
0 0 0 3 0 0 6 0 0 0 3 0 3 3 0 6 3 0 0 6 0 3 6 0 6 6 0 0 0 3
You want to be careful that you work in INTEGER arithmetic though. This is why I multiplied x by 3, instead of dividing the sum by 3.

1 Commento

Nicolas Leport
Nicolas Leport il 10 Feb 2023
Modificato: Nicolas Leport il 10 Feb 2023
Thanks, how do I add the corresponding x value to that matrix?

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Operators and Elementary Operations in Centro assistenza e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by