find if there are more then 10 consecutive NaN values

1 view (last 30 days)
Hello
I have a 170 x 1 matrix. Whicht contains 1 and 0 values. 1 is for NaN. I have 170 of this matrices. Is there a way how i can find only the matrices which contain more the 10 consecutive NaN values?
For example I have the following:
A = [ 0 0 1 1 1 1 1 1 1 1 1 1 1 0]
B = [ 1 1 1 1 0 0 1 1 0 1 1 1 1 1]
Now I need a code that gives the solution A, so I now in A are more the 10 consecutive NaN values.
Thanks for your help. Oliver

Accepted Answer

Azzi Abdelmalek
Azzi Abdelmalek on 4 Apr 2016
Edited: Azzi Abdelmalek on 4 Apr 2016
A = [ 0 0 1 1 1 1 1 1 1 1 1 1 1 0]
ii=strfind([0 A 0],[0 1])
jj=strfind([0 A 0],[1 0])
idx=max(jj-ii)
  4 Comments

Sign in to comment.

More Answers (3)

Image Analyst
Image Analyst on 6 Apr 2016
Another 2 line solution:
% Create sample data:
A = [ 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0]
% Measure the lengths of each "run" of ones:
measurements = regionprops(logical(A), 'Area');
theLengths = [measurements.Area]

Andrei Bobrov
Andrei Bobrov on 5 Apr 2016
i1 = find(diff([0 A 0]) == 1);
out = i1(find(diff([0 A 0]) == -1) - i1 > 10);

Prashant Dwivedi
Prashant Dwivedi on 16 Nov 2018
Hello, My problem is similer .
I wantedt to consicutive non NaN values . I tried
regionprops for ~isnan.
It does not work .
Any help will appreciated .
Thank you.
  3 Comments
Prashant Dwivedi
Prashant Dwivedi on 16 Nov 2018
Edited: Prashant Dwivedi on 16 Nov 2018
I tried like this :-
clear all
A = [ 2 5 6 2 nan nan nan 3 4 3 5 5 3 nan nan 2 2 3 4 5 5 nan 2 4 nan 4 5 5 6]
% Create sample data:
% Measure the lengths of each "run" of ones:
Mnan = regionprops(logical(A), 'Area');
theLengths = [Mnan.Area];
% Measure the lengths of each "run" of ones:
Mval = regionprops(logical(~isnan(A)), 'Area');
theLengths = [Mval.Area];
knan = length(Mnan)
kval = length(Mval)
But it gives error
Error using logical
NaN's cannot be converted to logicals.
Error in test (line 7)
Mnan = regionprops(logical(A), 'Area');
Image Analyst
Image Analyst on 16 Nov 2018
Of course. And why didn't you do it like I suggested?

Sign in to comment.

Categories

Find more on Numeric Types in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!