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]

 Respuesta aceptada

John D'Errico
John D'Errico el 10 de Feb. de 2023
Editada: John D'Errico el 10 de Feb. de 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 comentario

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

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Creating and Concatenating Matrices en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 9 de Feb. de 2023

Editada:

el 10 de Feb. de 2023

Community Treasure Hunt

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

Start Hunting!

Translated by