Effacer les filtres
Effacer les filtres

How to insert an element after each number in a vector?

15 vues (au cours des 30 derniers jours)
laith Farhan
laith Farhan le 5 Mai 2019
Commenté : Star Strider le 5 Mai 2019
Dear all,
I would like to add an element after each value in a vector, for example:
a=[10,2,40,58,100,90,40,30,4];
I would like to add 1 to vector values:
result = [1,10,1,2,1,40,1,58,1,100,1,90,1,40,1,30,1,4,1];
Help me please.....
  1 commentaire
Image Analyst
Image Analyst le 5 Mai 2019
Instead of "after each number" don't you mean "after each number, EXCEPT the first number, where the number is also before the first number?" That's what Star and Adams solutions do. Or do you really mean what you said, instead of the "result" you gave, and so there would be no 1 at the beginning?

Connectez-vous pour commenter.

Réponse acceptée

Star Strider
Star Strider le 5 Mai 2019
One approach:
a=[10,2,40,58,100,90,40,30,4];
result = [ones(size(a)); a];
result = [result(:); 1]'
producing:
result =
1 10 1 2 1 40 1 58 1 100 1 90 1 40 1 30 1 4 1
  4 commentaires
laith Farhan
laith Farhan le 5 Mai 2019
Super thanks Star Strider. It is really nice solution.
Thanks a lot guys for your solution and suggestion, I really appreciate that.
Star Strider
Star Strider le 5 Mai 2019
As always, my pleasure!

Connectez-vous pour commenter.

Plus de réponses (2)

Adam Danz
Adam Danz le 5 Mai 2019
result = [reshape([ones(size(a));a],length(a)*2,1);1]';
  3 commentaires
KALYAN ACHARJYA
KALYAN ACHARJYA le 5 Mai 2019
Modifié(e) : KALYAN ACHARJYA le 5 Mai 2019
Nice one, +1, I tried, but can't
laith Farhan
laith Farhan le 5 Mai 2019
Thanks Adam Danz. I really apprecaite your help.

Connectez-vous pour commenter.


Image Analyst
Image Analyst le 5 Mai 2019
Instead of "after each number" did you mean "after each number, EXCEPT the first number, where the number is also before the first number?" That's what Star and Adam's solutions do. Or do you really mean what you said, instead of the "result" you gave, and so there would be no 1 at the beginning?
Just to be complete and cover all ambiguities, I'll give the other solution. If you really want what you said in words, rather than the numerical result you gave, then use this code:
result = [a; ones(size(a))]
result = result(:)'
The result is:
result =
10 1 2 1 40 1 58 1 100 1 90 1 40 1 30 1 4 1
Note: 1's are only after the numbers and not before the first one.
  1 commentaire
laith Farhan
laith Farhan le 5 Mai 2019
Thanks Image Analyst, yes, it might help me for another cases.

Connectez-vous pour commenter.

Catégories

En savoir plus sur 2-D and 3-D Plots dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by