# How to combine two vectors column-by-column?

2 visualizzazioni (ultimi 30 giorni)
Jake il 14 Mar 2023
Commentato: Stephen23 il 17 Mar 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), ...]
##### 0 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

### Risposta accettata

Stephen23 il 17 Mar 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 CommentoMostra -1 commenti meno recentiNascondi -1 commenti meno recenti
Stephen23 il 17 Mar 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

Accedi per commentare.

### Più risposte (1)

Sarvesh Kale il 14 Mar 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 CommentoMostra -1 commenti meno recentiNascondi -1 commenti meno recenti
Jake il 17 Mar 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

Accedi per commentare.

### Categorie

Scopri di più su Matrix Indexing in Help Center e File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by