How to find position of something

2 vues (au cours des 30 derniers jours)
Martina
Martina le 7 Déc 2013
Hi, I am having a problem with part of my homework. I have a column with numbers and NaN-s. If I have 5 or more NaN-s in a row I need to know place/position where NaN start (j) and end (i) ( in all column). For example 7 6 5 NaN NaN NaN NaN NaN NaN 9 7
j=4 i=9 Thanks you very much :)

Réponse acceptée

Roger Stafford
Roger Stafford le 7 Déc 2013
You can use the 'find' and 'diff' functions as well as 'isnan' to accomplish that. Let A be your column vector of elements with possible NaNs among them.
m = 5; % The minimum length of consecutive NaNs to record
f = find(diff([false;isnan(A);false]));
B = [f(1:2:end-1),f(2:2:end)-1]; % Get all start and end indices for NaN consecutive sequences
B = B(B(:,2)-B(:,1)+1>=m,:); % Eliminate all with fewer than m NaNs
The first column of array B contains the start indices and the second column the end indices for consecutive sequences of at least five NaNs.

Plus de réponses (2)

Mohammad Monfared
Mohammad Monfared le 7 Déc 2013
Suppose you have a column or row vector named 'A',
find(isnan(A))
  4 commentaires
Martina
Martina le 7 Déc 2013
But I have lot of groups :(
Mohammad Monfared
Mohammad Monfared le 7 Déc 2013
It's not a straightforward simple line job, to me. One trick is to use the diff(isnan(A)) to find the boundaries of NaN groups and one more 'diff' to get the length of each group. Then a loop might be used afterward. Think about it (since it is a homework ;) ) a bit. If no success, I'll give the answer.

Connectez-vous pour commenter.


Image Analyst
Image Analyst le 7 Déc 2013
Modifié(e) : Image Analyst le 7 Déc 2013
Really easy if you have the Image Processing Toolbox. Do you have that?
measurements = regionprops(isnan(vector), 'PixelIdx');
% just 2 or 3 lines more and you've got it.
By the way, you shoudl have tagged it as homework - I did this for you this time.
  1 commentaire
Martina
Martina le 7 Déc 2013
I don't have that toolbox.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Logical 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!

Translated by