find if there are more then 10 consecutive NaN values
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Oliver Kumar
le 4 Avr 2016
Commenté : Image Analyst
le 16 Nov 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
0 commentaires
Réponse acceptée
Azzi Abdelmalek
le 4 Avr 2016
Modifié(e) : Azzi Abdelmalek
le 4 Avr 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 commentaires
Plus de réponses (3)
Image Analyst
le 6 Avr 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]
0 commentaires
Andrei Bobrov
le 5 Avr 2016
i1 = find(diff([0 A 0]) == 1);
out = i1(find(diff([0 A 0]) == -1) - i1 > 10);
0 commentaires
Prashant Dwivedi
le 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 commentaires
Prashant Dwivedi
le 16 Nov 2018
Modifié(e) : Prashant Dwivedi
le 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');
Voir également
Catégories
En savoir plus sur Numeric Types dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!