在Matlab中,使用预定义的色彩图,我想将颜色三元组与范围[v_min,v_max]中的任何值相关联。
如何插入此色彩图?
答案 0 :(得分:5)
以下代码可以。请注意,您需要缩放和偏移您正在绘制的变量[vmin vmax]
到[0 1]
val % Variable scaled correctly to the colormap scale (0-1).
hsv=rgb2hsv(cmap);
cm_data=interp1(linspace(0,1,size(cmap,1)),hsv,val);
cm_data=hsv2rgb(cm_data);
cm_data
应该有您正在寻找的三联体。代码取自here
注意:这将按照您的要求进行,但我不确定您是否要这样做。如果这是出于绘图目的,那么这是一个坏主意,因为色图需要与数据线性增加,而MATLAB的颜色绘图将假定它是。
如果您的目标是确保您拥有足够大的色彩映射表,请将val
更改为linspace(0,1,300)
。