merging vectors together with alternating values

53 vues (au cours des 30 derniers jours)
Andrew Luce
Andrew Luce le 28 Mai 2019
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
>>

Star Strider
Star Strider le 28 Mai 2019
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.
Star Strider
Star Strider le 28 Mai 2019
@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
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
shikhar tyagi
shikhar tyagi le 19 Août 2021
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
Indrasish Chakraborty
Indrasish Chakraborty le 19 Août 2021
: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 Logical dans Help Center 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