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