Systematically add entries to vector array

3 vues (au cours des 30 derniers jours)
MiauMiau
MiauMiau le 22 Août 2017
Modifié(e) : Stephen23 le 22 Août 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

Réponse acceptée

Stephen23
Stephen23 le 22 Août 2017
Modifié(e) : Stephen23 le 22 Août 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

Plus de réponses (1)

KSSV
KSSV le 22 Août 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 commentaire
José-Luis
José-Luis le 22 Août 2017
N = (length(A))*2+length(A) ;
What's wrong with length(A) .* 3?
:)

Connectez-vous pour commenter.

Catégories

En savoir plus sur Multidimensional Arrays 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