How do I find the number of occurrences of NaN and the corresponding subscripts in an array
    4 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
A = NaN 100 101 102 103 104
    201 2   7   3   2   2 
    202 NaN 8   4   5   6
    203 NaN NaN 2   3   5
    205 3   4   2   6   4
I have a matrix with the first row and first column being headers. I would like to know the no. occurences and subscripts on NaN.
To find no. of occurences, I did
number_of_nan = sum(sum(isnan(A(2:end,2:end))))
Also,
    logical_array = isnan(A(2:end,2:end));
    numel(logical_array(logical_array == 1));
Is there a simpler/better way. Also how do I find the subscripts of the NaN elements in the array ?
2 commentaires
  José-Luis
      
 le 9 Jan 2013
				What do you mean by subscripts? The linear indexes or the row and column position? The indices relative to what? To the entire array or to the array without column and headers?
Réponse acceptée
  José-Luis
      
 le 9 Jan 2013
        
      Modifié(e) : José-Luis
      
 le 9 Jan 2013
  
      Another option:
 logical_array = A(2:end,2:end) ~= A(2:end,2:end)
 num_NaN = sum(logical_array(:));
 idx = find(logical_array); %I am not sure this is what you want, please see my comment to your question
EDIT so that was not what your wanted after all. For that:
To get row and column position, according to the header:
 logical_array = A(2:end,2:end) ~= A(2:end,2:end)
 idx = find(logical_array); 
 [dim(1) dim(2)] = size(A);
 [ii,jj] = ind2sub(dim-1,idx);
 your_position = [A(ii+1,1) A(1,jj+1)'];
0 commentaires
Plus de réponses (0)
Voir également
Catégories
				En savoir plus sur Dates and Time 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!

