How to extend/add elements to an array?

I want to extend an array at the points were the array are 0.
For example an array like this:
A=[2 3 4 5 0 1 4 5 5 0 3 4 0 2 0 ];
At each zero in A i want to extend by B=[3 2 3 5];
so the new array will be:
C=[2 3 4 5 0 0 0 1 4 5 5 0 0 3 4 0 0 0 2 0 0 0 0 0];

 Réponse acceptée

Andrei Bobrov
Andrei Bobrov le 15 Avr 2019
Modifié(e) : Andrei Bobrov le 16 Avr 2019
A = [2 3 4 5 0 1 4 5 5 0 3 4 0 2 0 ];
B = [3 2 3 5];
out = A(sort([find(A),repelem(find(A == 0),B)]));

4 commentaires

madhan ravi
madhan ravi le 15 Avr 2019
What is ii ?
Rikke
Rikke le 16 Avr 2019
Modifié(e) : Rikke le 16 Avr 2019
@Andrei
I wrote wrong in the first place, i want all the zeros to exceed so B will be for example:
B= [3 2 3 5];
out will then be =[2 3 4 5 0 0 0 1 4 5 5 0 0 3 4 0 0 0 2 0 0 0 0 0];
Andrei Bobrov
Andrei Bobrov le 16 Avr 2019
Hi Rikke!
I fixed my answer.
Rikke
Rikke le 17 Avr 2019
Brilliant! Thanks!

Connectez-vous pour commenter.

Plus de réponses (1)

Rikke
Rikke le 16 Avr 2019
I got the solution for B= [3 2 3 5]. Thanks Andrei!
A=[2 3 4 5 0 1 4 5 5 0 3 4 0 2 0 ];
B=[3 2 3 5];
jj = find(A == 0);
out = A(sort([find(A),jj,repelem(jj,B)]));
Madhan I think ii is if you want to add zeros to spesific zeros in the array and not all of them.

Catégories

Community Treasure Hunt

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

Start Hunting!

Translated by