How to combine two vectors column-by-column?

16 visualizaciones (últimos 30 días)
Jake
Jake el 14 de Mzo. de 2023
Comentada: Stephen23 el 17 de Mzo. de 2023
I have two matrices, A and B.
A = [1,3,5,7,9,11,13,15]
A = 1×8
1 3 5 7 9 11 13 15
B = [2,4,6,8,10,12,14,16]
B = 1×8
2 4 6 8 10 12 14 16
How can I combine these two to give me a third matrix C, which is as follows?
C = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]
C = 1×16
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
So, basically, C should be [A(:,1), B(:,1), A(:,2), B(:,2), ...]

Respuesta aceptada

Stephen23
Stephen23 el 17 de Mzo. de 2023
A = [1,3,5,7;9,11,13,15;17,19,21,23]
A = 3×4
1 3 5 7 9 11 13 15 17 19 21 23
B = [2,4,6,8;10,12,14,16;18,20,22,24]
B = 3×4
2 4 6 8 10 12 14 16 18 20 22 24
C = reshape(permute(cat(3,A,B),[1,3,2]),size(A,1),[])
C = 3×8
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
  1 comentario
Stephen23
Stephen23 el 17 de Mzo. de 2023
A = [1,3,5,7;9,11,13,15;17,19,21,23];
B = [2,4,6,8;10,12,14,16;18,20,22,24];
Another approach:
C = repelem(A,1,2);
C(:,2:2:end) = B
C = 3×8
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Iniciar sesión para comentar.

Más respuestas (1)

Sarvesh Kale
Sarvesh Kale el 14 de Mzo. de 2023
Hi Jake,
You can see the following code snippet
A = [1,3,5,7,9,11,13,15];
B = [2,4,6,8,10,12,14,16];
C=[A;B] % row wise concatenation
C = 2×8
1 3 5 7 9 11 13 15 2 4 6 8 10 12 14 16
C=C(:)'; % traversal will be column wise as matrix elements are stored in column major format
C
C = 1×16
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
I hope this helps your query
Thank you
  1 comentario
Jake
Jake el 17 de Mzo. de 2023
Thank you for the solution, @Sarvesh Kale! I'm curious to know how could one do this when the matrices are multi-dimensional. For instance, what if,
A = [1,3,5,7;9,11,13,15;17,19,21,23]
A = 3×4
1 3 5 7 9 11 13 15 17 19 21 23
B = [2,4,6,8;10,12,14,16;18,20,22,24]
B = 3×4
2 4 6 8 10 12 14 16 18 20 22 24
How could we get the matrix C by combining every-other column of A, and B, such that, (simply to demonstrate)?
C = [1,2,3,4,5,6,7,8; 9,10,11,12,13,14,15,16; 17,18,19,20,21,22,23,24]
C = 3×8
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Iniciar sesión para comentar.

Categorías

Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by