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]

 Akzeptierte Antwort

John D'Errico
John D'Errico am 10 Feb. 2023
Bearbeitet: John D'Errico am 10 Feb. 2023

1 Stimme

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 Kommentar

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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Operators and Elementary Operations finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by