Matrix of two columns using two vectors

1 visualización (últimos 30 días)
Juan Pérez Álvarez
Juan Pérez Álvarez el 12 de Feb. de 2022
Comentada: Juan Pérez Álvarez el 14 de Feb. de 2022
Hi. I need code for coordinate points (I need the program to always create a matrix(n,2) with two columns):
For example
A = [1,2,3,4];
B = [5,6,7];
LA = length(A);
LB = length(B);
Matrix = [(1,5) ; (1,6) ; (1,7) ; (2,5) ; (2,6) ; ...];
As you can see, I need to multiply each element of vector A for each element of B. And I need to do this using for loops.
I know the Matrix has a length of LA*LB, then:
Matrix = zeros(LA*LB,2);
The question is how put every combination of the arrays to the matrix?
I reed a question in this forum to solve this kind of problem doing somethng like this:
Matrix = []
for i =1:LA
for j =1:LB
Matrix = [Matrix B]; % Something like this
end
end
¿Any idea?

Respuesta aceptada

Voss
Voss el 12 de Feb. de 2022
A = [1,2,3,4];
B = [5,6,7];
LA = length(A);
LB = length(B);
Matrix = zeros(LA*LB,2);
for i = 1:LA
for j = 1:LB
Matrix((i-1)*LB+j,:) = [A(i) B(j)];
end
end
disp(Matrix);
1 5 1 6 1 7 2 5 2 6 2 7 3 5 3 6 3 7 4 5 4 6 4 7
  2 comentarios
Voss
Voss el 12 de Feb. de 2022
Editada: Voss el 12 de Feb. de 2022
There are also many ways that do not use loops:
A = [1,2,3,4];
B = [5,6,7];
[A,B] = meshgrid(A,B);
Matrix = [A(:) B(:)];
disp(Matrix);
1 5 1 6 1 7 2 5 2 6 2 7 3 5 3 6 3 7 4 5 4 6 4 7
A = [1,2,3,4];
B = [5,6,7];
LA = length(A);
LB = length(B);
Matrix = [repelem(A(:),LB,1) repmat(B(:),LA,1)];
disp(Matrix);
1 5 1 6 1 7 2 5 2 6 2 7 3 5 3 6 3 7 4 5 4 6 4 7
A = [1,2,3,4];
B = [5,6,7];
LA = length(A);
LB = length(B);
Matrix = [kron(A(:),ones(LB,1)) repmat(B(:),LA,1)];
disp(Matrix);
1 5 1 6 1 7 2 5 2 6 2 7 3 5 3 6 3 7 4 5 4 6 4 7
And many others.
Juan Pérez Álvarez
Juan Pérez Álvarez el 14 de Feb. de 2022
Thank you.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre MATLAB en Help Center y File Exchange.

Productos


Versión

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by