indices when the columns are all nan
    10 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Sagar
      
 el 16 de Mzo. de 2016
  
    
    
    
    
    Comentada: Sagar
      
 el 17 de Mzo. de 2016
            I am using [m, d] = nanmax (r_all); to get the maximum values and corresponding indices in matlab. There are several columns in r_all in which all the elements are nans. Unfortunately, nanmax returns '1' in indices for those columns that have all nans. However, there are actual indices that are value '1' so it creates confusion. How can I force matlab to return 'a' or 'b' as the output instead of returning 0' or '1'? Could you please suggest other solutions to this problem?
6 comentarios
Respuesta aceptada
  Stephen23
      
      
 el 16 de Mzo. de 2016
        
      Editada: Stephen23
      
      
 el 16 de Mzo. de 2016
  
      There is no need to waste time using slow and ugly loops and if statements. You can locate those "incorrect" indices very simply using basic MATLAB indexing:
>> mat = [0,1,2,NaN,3,NaN;4,NaN,5,NaN,6,NaN;7,8,NaN,NaN,NaN,9]
mat =
     0     1     2   NaN     3   NaN
     4   NaN     5   NaN     6   NaN
     7     8   NaN   NaN   NaN     9
>> [m,idx] = nanmax(mat) % max value and its indices
m =
     7     8     5   NaN     6     9
idx =
     3     3     2     1     2     3
>> idx(all(isnan(mat),1)) = NaN % replace all-NaN indices with NaN
idx =
     3     3     2   NaN     2     3
3 comentarios
Más respuestas (1)
  KSSV
      
      
 el 16 de Mzo. de 2016
        clc; clear all ;
load data.mat ;
[m,n] = size(data) ; 
idx = zeros(n,1) ;
val = idx ;
% column wise 
for c = 1:n
    [i,j] = nanmax(data(:,c)) ;
    if isnan(i)
        j = 50 ;
    end
    idx(c) = j ; 
    val(c) = i ;
end
0 comentarios
Ver también
Categorías
				Más información sobre Loops and Conditional Statements en Help Center y File Exchange.
			
	Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


