Matrix of two columns using two vectors

3 Ansichten (letzte 30 Tage)
Juan Pérez Álvarez
Juan Pérez Álvarez am 12 Feb. 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?

Akzeptierte Antwort

Voss
Voss am 12 Feb. 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 Kommentare
Voss
Voss am 12 Feb. 2022
Bearbeitet: Voss am 12 Feb. 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 am 14 Feb. 2022
Thank you.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Produkte


Version

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by