how to do repeating numbers in array

Hi
I have an array like [1 0 0 0 2 0 0 0 3 0 0 0 0 0 5 0 0 0 0].
I want output like, [1 1 1 1 2 2 2 2 3 3 3 3 3 3 5 5 5 5 5].
how i can do this?
Thanks in Advance!!!
Murugan

 Risposta accettata

Stephen23
Stephen23 il 19 Set 2018
Modificato: Stephen23 il 19 Set 2018
An old fashioned way:
>> V = [1,0,0,0,2,0,0,0,3,0,0,0,0,0,5,0,0,0,0];
>> X = V~=0;
>> U = V(X);
>> U(cumsum(X))
ans =
1 1 1 1 2 2 2 2 3 3 3 3 3 3 5 5 5 5 5

Più risposte (1)

jonas
jonas il 19 Set 2018
A is your array
A(A==0)=NaN
A=fillmissing(A,'previous')

1 Commento

currently i am using lower version. I think, it should work for higher version. Thanks for your suggestion.

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by