merging vectors together with alternating values

Hello,
I want to merge two vectors like this:
A=[ 1; 2; 3; 4;] B=[5; 6; 7; 8;]
resulting vector
C=[1; 5; 2; 6; 3; 7; 4; 8;]
Thank you

Réponses (4)

KALYAN ACHARJYA
KALYAN ACHARJYA le 28 Mai 2019
Modifié(e) : KALYAN ACHARJYA le 28 Mai 2019
vec=[A B]';
C=vec(:)
>> A=[ 1; 2; 3; 4]
Example:
>> A=[ 1; 2; 3; 4]
A =
1
2
3
4
>> B=[5; 6; 7; 8]
B =
5
6
7
8
>> vec=[A B]'
vec =
1 2 3 4
5 6 7 8
>> C=vec(:)
C =
1
5
2
6
3
7
4
8
>>
Try this:
A=[1; 2; 3; 4];
B=[5; 6; 7; 8];
C = [A(:) B(:)]';
C = C(:)
producing:
C =
1
5
2
6
3
7
4
8

2 commentaires

Stephen23
Stephen23 le 28 Mai 2019
Modifié(e) : Stephen23 le 28 Mai 2019
+1 nice use of colon to ensure the orientation.
@Stephen — Thank you! I want it to be as robust as possible.

Connectez-vous pour commenter.

Indrasish Chakraborty
Indrasish Chakraborty le 19 Août 2021

1 vote

What if the two vectors are of unequal length ?
For example -
A=[2 4 5 7 8]
B=[3 8 0 1]
Then how to get C=[2 3 4 8 5 0 7 1 8] ?

2 commentaires

A=[1; 0; 3; 4 ;6 ;0];
B=[5; 6; 7 ;0 ;4];
C=cat(1,A,B);
C([1:2:end,2:2:end])=C
I hope this helps
:v It helped

Connectez-vous pour commenter.

Nils Odenwald
Nils Odenwald le 2 Sep 2021
Modifié(e) : Nils Odenwald le 2 Sep 2021
I recommend the MATLAB function "reshape", which allows you to change the order of arrays. You can also manipulate different data types such as strings.
Example:
A = [1; 2; 3; 4; 5];
B = [0; 0; 0; 0; 0];
result = reshape([A B]',[],1)
result = 10×1
1 0 2 0 3 0 4 0 5 0

Catégories

En savoir plus sur Get Started with MATLAB dans Centre d'aide et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by