imshow 在 Matlab 中有副作用吗?我该如何解决它们?

Does imshow have side effects in Matlab? And how can I resolve them?

我有两个轴,比如说 A1A2,在 A2 我有一张显示 imshow 的图像,在 A1 我显示与 imagesc 完全不同的内容,并且在使用 A2 时会产生不同的颜色结果。这是一些示例代码,可能是最短的示例:

a = zeros(1); 
[b,bmap] = imread('F.bmp');
c = figure();
d = axes('Parent',c,'Position',[0,0,.5,1]);
e = axes('Parent',c,'Position',[.5,0,.5,1]);


axes(d);
imagesc(a);
pause();
axes(e);
imshow(b,bmap);
pause();
cla(d);
axes(d);
imagesc(a);
figure();
axes();
imagesc(a);

图片a显示b后显示不一样,换图显示正常。我该如何解决这个问题?

深入挖掘后,我认为这是因为提供地图,bmapimshow 导致 figure.Colormap 值发生变化,因此可以通过键入 colormap defaultimshow 命令之后。