MATLAB: How to use two colormaps in one imagesc plot

colormapimage

I got a correlation map 50*50 with the data range [-0.8,1], I would like to plot the map using imagesc, and set the colormap based on the value range of each pixel, e.g for value >0 using 'hot' and for value<=0 using 'cool'. Is there a simple way to achieve this? Thanks in advance!

Best Answer

You can create a new colormap based on the proportion of the individual colormap
imagesc(M);
colorbar();
caxis([-0.8 1]);
cmap = [cool(80); hot(100)];
colormap(cmap);