valores NaN obtener el primer color de los ejes mapa de colores, que por defecto corresponde al valor mínimo (que no sea NaN). Puede cambiar el color para el valor mínimo que establece los límites de color de los ejes con la función CAXIS. Para asignar un color de contraste a los valores NaN, puede agregar un color especial para los valores NaN como primer color (vector 1x3).
Puedo tomar su ejemplo e hicieron una función (con algunos comentarios):
function [h hcb] = imagescwithnan(a,cm,nanclr)
% IMAGESC with NaNs assigning a specific color to NaNs
%# find minimum and maximum
amin=min(a(:));
amax=max(a(:));
%# size of colormap
n = size(cm,1);
%# color step
dmap=(amax-amin)/n;
%# standard imagesc
him = imagesc(a);
%# add nan color to colormap
colormap([nanclr; cm]);
%# changing color limits
caxis([amin-dmap amax]);
%# place a colorbar
hcb = colorbar;
%# change Y limit for colorbar to avoid showing NaN color
ylim(hcb,[amin amax])
if nargout > 0
h = him;
end
Aquí CAXIS instrucción asigna el primer color del mapa de color no al valor mínimo amin
, sino a la amin-dmap
. Entonces, el primer color se asigna específicamente a NaN.
Pruebe esta función con:
a=peaks;
a(a < 0.5) = nan;
imagescwithnan(a,hot,[0 1 1]) %# [0 1 1] is cyan
Si usted comenta la declaración ylim en la función (puede ser el control con el parámetro adicional) este color NaN estará en el mapa de colores.