如何保存自定义色彩映射并在Matlab中再次使用它?

时间:2017-07-09 07:26:45

标签: matlab matlab-figure colormap

我创建了一个类似于人类连接组项目色彩映射ROY-BIG-BL的色彩映射,在色彩映射编辑器see here上手动完成。

但是,我无法将其保存为色彩映射表。 我尝试了不同的命令,如

mycmap = get(gcf,'colormap')

我在Matlab 2015中看到,应该使用gca,但这会产生错误。

  

使用matlab.graphics.axis.Axes / get时出错   Axes类上没有colormap属性。

当我尝试将保存的mycmap用于另一个图时,它会忽略所有修改并使用基本的colormap parula。

感谢您的帮助。如何保存并将其用作我想要的任何图形中的另一个色彩图?

1 个答案:

答案 0 :(得分:3)

colormaps的定义深深隐藏在图类中,无法访问。因此,您无法在Matlab中“使用名称”保存色彩映射,并像普通色彩映射一样访问它。但是色彩图除了 Yx3 矩阵外,还可以存储在磁盘上。

%// custom colormap
n = 50;               %// number of colors
R = linspace(1,0,n);  %// Red from 1 to 0
B = linspace(0,1,n);  %// Blue from 0 to 1
G = zeros(size(R));   %// Green all zero
myCustomColormap = [R(:), G(:), B(:)];

%// save colormap on disk
save('myCustomColormap','myCustomColormap');

%// clear for explanation purposes
clear 
%%%%%%%%%%%%%%%%%%%

%// load colormap saved on disk
load myCustomColormap

%// assign colormap
colormap( myCustomColormap ); 

您使用了色彩映射编辑器来创建色彩映射。应用它之后,使用以下代码获取所需的矩阵以供进一步参考:

myCustomColormap = colormap(gca)
save('myCustomColormap','myCustomColormap');

如果您想使色彩图通常可用于您的所有功能,无论在哪里,add it to your Matlab search path