# Make spceficic array values zero.

1 vue (au cours des 30 derniers jours)
Santos García Rosado le 18 Mar 2021
Hi Mathworks community!
I'm having trouble trying to make some of my array values zero. This array corresponds to my Input:
Input = [-1 0 -1 0 0 NaN NaN NaN NaN -1 0 -1 -1 -1 0 NaN NaN NaN 0 0 -1 0 -1 NaN NaN NaN]
I'd like to make everything inside the array zero, but the last -1 before every NaN series. This should be the expected Output:
Output = [0 0 -1 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 -1 0 0 0]
Thank you,
Santos
##### 0 commentairesAfficher -2 commentaires plus anciensMasquer -2 commentaires plus anciens

Connectez-vous pour commenter.

### Réponse acceptée

David Hill le 18 Mar 2021
a=find(diff(isnan(Input))==1);
b=find(Input==-1);
Output=zeros(size(Input));
for k=a
Output(b(find(b<=k,1,'last')))=-1;
end
##### 3 commentairesAfficher 1 commentaire plus ancienMasquer 1 commentaire plus ancien
David Hill le 18 Mar 2021
You could do something like:
Input = [-1 0 -1 0 0 NaN NaN NaN NaN -1 0 -1 -1 -1 0 NaN NaN NaN 0 0 -1 0 -1 NaN NaN NaN];
Output=zeros(size(Input));
idx=[];
for k=1:length(Input)
if Input(k)==-1
Output(k)=-1;
idx=[idx,k];
end
if isnan(Input(k))
Output(idx(1:end-1))=0;
idx=[];
end
end
Santos García Rosado le 22 Mar 2021
Thank's for the quick feed back and help!

Connectez-vous pour commenter.

### Catégories

En savoir plus sur Data Type Identification dans Help Center et File Exchange

R2021a

### Community Treasure Hunt

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

Start Hunting!

Translated by