colormap
如何定位matlab
?下面的示例似乎表明它不是词法作用域,因为代码块中设置的值可以在该块之外访问。
% example 1
for i=1:3
colormap('gray');
subplot(2,2,i);
imagesc(eye(5));
end
subplot(2,2,4);
imagesc(eye(5));
此外,其定义似乎取决于是否调用其他函数(例如figure
)。在以下两个示例中,colormap
似乎是根据是否调用其他函数来动态确定范围的。
% example 2
colormap(gray);
for i=1:4
subplot(2,2,i);
imagesc(eye(5));
end
% example 3
colormap(gray);
figure;
for i=1:4
subplot(2,2,i);
imagesc(eye(5));
end
在'示例2中',灰色颜色贴图应用于每个image
。在“示例3”中,默认colormap
(jet
)用于每个image
,这表明调用函数figure
取代之前的colormap
定义,将它们重置为默认值。还有哪些函数调用具有此属性?
最后,调用colormap('default')
会产生什么影响?鉴于我先前假设调用figure
将colormap
重置为默认值,以下代码不会像我预期的那样生成包含gray
colormap
的图片。相反,所有数字都使用jet
colormap
。在什么意义上gray
colormap
被设为默认值?
% example 4
colormap(gray);
colormap('default');
figure;
for i=1:4
subplot(2,2,i);
imagesc(eye(5));
end
答案 0 :(得分:4)
同一图中的所有相关图形对象共享一个色彩映射表。每个图形都在'colormap'
属性中维护一个色彩映射。例如:get(gcf,'colormap')
。
colormap('NAME')
适用于当前数字。这具有set(gcf,'ColorMap',cm)
的效果。
colormap(axisHandle,..)
或colormap(figurehandle, ...)
明确标识正在设置其色彩映射的数字。请注意,colormap(axisHandle,..)
语法仍设置图形的颜色图,它只使用axisHandle的父属性来确定要设置的图形。
答案 1 :(得分:0)