在Matlab colorbar中将值设置为某种颜色

Set value to a certain color in Matlab colorbar

在 Matlab 中考虑一个 MxN 矩阵 A 其值在 [-o p] 中M,N 作为整数值,o,p 作为双精度值。 MN中origo两边的值个数不一定是偶数。

A 使用 Matlabs imagesccolorbar.

可视化

如何强制颜色条将 A 中接近于零的值设置为某种颜色?

请注意,我不希望(例如)'hard code' 零 (0) 为绿色 (0 128 0),而是我希望使用默认的 rgb 或 hsv 颜色图并进行调整A 中的值,同时仍保持绿色调为零(或接近零)。

这就是我要做的。我真的觉得有一种 faster/better 方法可以做到这一点,所以请 post 改进。

[minM minMlix] = min(oM(:));
[maxM maxMlix] = max(oM(:));
gr1 = abs( minM );
gr2 = abs (maxM );
if ( gr1 > gr2 )
    maxM = gr1;
elseif (gr1 < gr2 )
    minM = -maxM;
end
caxis([minM maxM])

如果您希望 0 值实际位于颜色图的中间,则需要在确定最大幅度后设置颜色限制(使用轴的 caxis of the CLims 属性)您的数据:

limit = max(abs(data(:)));
caxis([-limit, limit]);