插值matlab色彩映射

Cov*_*ich 3 matlab interpolation colormap

在Matlab中,使用预定义的色彩图,我想将颜色三元组与范围[v_min,v_max]中的任何值相关联.

如何插入此色彩图?

And*_*uri 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);
Run Code Online (Sandbox Code Playgroud)

cm_data应该有你正在寻找的三胞胎.代码来自这里

注意:这将按照您的要求进行,但我不确定您是否要这样做.如果这是出于绘图目的,那么这是一个坏主意,因为色图需要与数据线性增加,而MATLAB的颜色绘图将假定它是.

如果你的目标是确保你有足够的大色图,那么val改为linspace(0,1,300).

  • 您可以在2D矩阵上使用`interp1`.每列将独立插值.这实际上是如何在MATLAB中插入parula颜色图....所以你可以简单地做`cm_data = interp1(linspace(0,1,size(cmap,1)),hsv,val);` (2认同)