フィルターのクリア

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

15 ビュー (過去 30 日間)
laith Farhan
laith Farhan 2019 年 5 月 5 日
コメント済み: Star Strider 2019 年 5 月 5 日
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 件のコメント
Image Analyst
Image Analyst 2019 年 5 月 5 日
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?

サインインしてコメントする。

採用された回答

Star Strider
Star Strider 2019 年 5 月 5 日
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 件のコメント
laith Farhan
laith Farhan 2019 年 5 月 5 日
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 2019 年 5 月 5 日
As always, my pleasure!

サインインしてコメントする。

その他の回答 (2 件)

Adam Danz
Adam Danz 2019 年 5 月 5 日
result = [reshape([ones(size(a));a],length(a)*2,1);1]';
  3 件のコメント
KALYAN ACHARJYA
KALYAN ACHARJYA 2019 年 5 月 5 日
編集済み: KALYAN ACHARJYA 2019 年 5 月 5 日
Nice one, +1, I tried, but can't
laith Farhan
laith Farhan 2019 年 5 月 5 日
Thanks Adam Danz. I really apprecaite your help.

サインインしてコメントする。


Image Analyst
Image Analyst 2019 年 5 月 5 日
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 件のコメント
laith Farhan
laith Farhan 2019 年 5 月 5 日
Thanks Image Analyst, yes, it might help me for another cases.

サインインしてコメントする。

カテゴリ

Help Center および File Exchange2-D and 3-D Plots についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by