Borrar filtros
Borrar filtros

find if there are more then 10 consecutive NaN values

1 visualización (últimos 30 días)
Oliver Kumar
Oliver Kumar el 4 de Abr. de 2016
Comentada: Image Analyst el 16 de Nov. de 2018
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

Respuesta aceptada

Azzi Abdelmalek
Azzi Abdelmalek el 4 de Abr. de 2016
Editada: Azzi Abdelmalek el 4 de Abr. de 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 comentarios

Iniciar sesión para comentar.

Más respuestas (3)

Image Analyst
Image Analyst el 6 de Abr. de 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 el 5 de Abr. de 2016
i1 = find(diff([0 A 0]) == 1);
out = i1(find(diff([0 A 0]) == -1) - i1 > 10);

Prashant Dwivedi
Prashant Dwivedi el 16 de Nov. de 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 comentarios
Prashant Dwivedi
Prashant Dwivedi el 16 de Nov. de 2018
Editada: Prashant Dwivedi el 16 de Nov. de 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 el 16 de Nov. de 2018
Of course. And why didn't you do it like I suggested?

Iniciar sesión para comentar.

Categorías

Más información sobre Numeric Types en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by