How to remove five lines before every NaN in the vector?

Hi everybody!
I am working with eye movements and currently analyzing some data from my experiments. I have a vector of data in Matlab which is indicating the position of the eye. After I imported the ASCII-file to the Matlab, I started to have some strange numbers before every NaN in the vector (I am attaching the file). How can I remove about 5 arrays before and after every NaN in the vector? These arrays I want to replace with NaNs again. I know that it should be really easy to do but my Matlab skills are not enough.
I will very grateful if somebody can help.
Thank you!
Best,
Daria

Réponses (1)

NL = find(isnan(Data));
zap_at = unique(NL+(-5:5));
Data(zap_at) = nan;

2 commentaires

Thank you, Walter! Should I put the name of my vector instead of Data? And what is NL and zap_at?
Sorry, I am just too bad in Matlab :(
yes Data is your vector.
NL is nan locations, the places that the nans are.
zap_at is the places to overwrite with nan.
The code assumes that some of the nan might be within 5 of each other and filters out the duplicates. You could probably get away without the unique() call.
The code as written relies on R2016b or later

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by