indices when the columns are all nan

1 visualización (últimos 30 días)
Sagar
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
KSSV
KSSV el 16 de Mzo. de 2016
you attach your matrix.....
Sagar
Sagar el 16 de Mzo. de 2016
Editada: Sagar el 16 de Mzo. de 2016
attached is the data. Please follow the link: https://drive.google.com/file/d/0B67659k3uth9Nks5OTUzZ2JRYU0/view?usp=sharing

Iniciar sesión para comentar.

Respuesta aceptada

Stephen23
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
Sagar
Sagar el 17 de Mzo. de 2016
Editada: Sagar el 17 de Mzo. de 2016
Great, I like Guillaume's answer. :)
Sagar
Sagar el 17 de Mzo. de 2016
Thanks Stephen, apparently I didn't know there is 'all' function which I needed. :)

Iniciar sesión para comentar.

Más respuestas (1)

KSSV
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

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by