MATLAB官方文档示例colormap函数不适用于imshow?

MATLAB官方文档示例colormap函数不适用于imshow?,matlab,Matlab,我从本教程中学习FFT: 所以我在matlab的网站上尝试了这个例子。但是,频域图像是灰度图像,而不是colormap函数指定的彩色图像。我唯一能使它丰富多彩的方法是用下面注释掉的版本替换imshow函数 为什么colormap函数在这种情况下不起作用 f = zeros(30,30); f(5:24,13:17) = 1; imshow(f,'InitialMagnification','fit') figure; F = fft2(f); F2 = log(abs(F)); %imsho

我从本教程中学习FFT:

所以我在matlab的网站上尝试了这个例子。但是,频域图像是灰度图像,而不是colormap函数指定的彩色图像。我唯一能使它丰富多彩的方法是用下面注释掉的版本替换imshow函数

为什么colormap函数在这种情况下不起作用

f = zeros(30,30);
f(5:24,13:17) = 1;
imshow(f,'InitialMagnification','fit')

figure;
F = fft2(f);
F2 = log(abs(F));
%imshow(F2,[-1 5],'InitialMagnification','fit','Colormap',jet(256));  % this works
imshow(F2,[-1 5],'InitialMagnification','fit');
colormap(jet(256)); colorbar                   % not work, gets greyscale image

我认为这是一个轴的问题,你想要你的彩色地图。用下面的代码替换最后一行<代码>gca指当前轴

colormap(gca,jet(256)); colorbar   

这确实有效,谢谢。然而,根据colormap函数的文档:colormap(map)将当前图形的colormap设置为map指定的colormap。地物颜色贴图影响地物中的所有轴,除非单独设置轴颜色贴图。所以我有点困惑,因为它说“影响所有轴”。我不能重现这个问题-它在我的机器中工作正常。可能是您执行的代码与发布的代码不同吗?例如:
imshow(F2,[-15],'initial放大','fit');彩色地图(jet(256));色条;imshow(F2,[-15],'initial放大','fit')
尝试以下操作:在每个
imshow
(在同一代码行中)之前添加
figure
命令,如下所示:
figure;imshow(f,'initial放大','fit')
<代码>图形;imshow(F2,[-15],'initial放大','fit')。。。