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

1 回表示 (過去 30 日間)
Daria Ivanchenko
Daria Ivanchenko 2020 年 4 月 27 日
コメント済み: Walter Roberson 2020 年 4 月 27 日
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

回答 (1 件)

Walter Roberson
Walter Roberson 2020 年 4 月 27 日
NL = find(isnan(Data));
zap_at = unique(NL+(-5:5));
Data(zap_at) = nan;
  2 件のコメント
Daria Ivanchenko
Daria Ivanchenko 2020 年 4 月 27 日
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 :(
Walter Roberson
Walter Roberson 2020 年 4 月 27 日
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

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeResizing and Reshaping Matrices についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by