Systematically add entries to vector array

2 views (last 30 days)
MiauMiau
MiauMiau on 22 Aug 2017
Edited: Stephen on 22 Aug 2017
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

Accepted Answer

Stephen
Stephen on 22 Aug 2017
Edited: Stephen on 22 Aug 2017
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

More Answers (1)

KSSV
KSSV on 22 Aug 2017
A = [ 1 3 5 7 1 3] ;
N = (length(A))*2+length(A) ;
C = 8*ones(N,1) ;
C(1:3:end) = A ;
  1 Comment
José-Luis
José-Luis on 22 Aug 2017
N = (length(A))*2+length(A) ;
What's wrong with length(A) .* 3?
:)

Sign in to comment.

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by