Systematically add entries to vector array

Hi,
Given I have a vector as for instance: [ 1 3 5 7 1 3 ...]
I want to add twice the number "8" after each entry, hence we would have:
[ 1 8 8 3 8 8 5 8 8 7 8 8 1 8 8 3 8 8 ...]
How could I do that, in a way which would be not specific for the length of my initial array? Thanks

 採用された回答

Stephen23
Stephen23 2017 年 8 月 22 日
編集済み: Stephen23 2017 年 8 月 22 日

1 投票

Here is one efficient method, without creating any temporary variables:
>> V = [1 3 5 7 1 3];
>> V(2:3,:) = 8;
>> V(:).'
ans =
1 8 8 3 8 8 5 8 8 7 8 8 1 8 8 3 8 8

その他の回答 (1 件)

KSSV
KSSV 2017 年 8 月 22 日

0 投票

A = [ 1 3 5 7 1 3] ;
N = (length(A))*2+length(A) ;
C = 8*ones(N,1) ;
C(1:3:end) = A ;

1 件のコメント

José-Luis
José-Luis 2017 年 8 月 22 日
N = (length(A))*2+length(A) ;
What's wrong with length(A) .* 3?
:)

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

カテゴリ

ヘルプ センター および File ExchangeData Types についてさらに検索

タグ

質問済み:

2017 年 8 月 22 日

編集済み:

2017 年 8 月 22 日

Community Treasure Hunt

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

Start Hunting!

Translated by