可视化小数字的矩阵

时间:2017-10-11 20:26:14

标签: matlab plot matlab-figure matlab-guide colorbar

我已经生成了一个随机矩阵。我想在一个情节中展示它并看到不同颜色的不同值。

phi = zeros(10,10);
for i= 1:length(phi)
for j=1:length(phi)
    phi(i,j) = .5 + .2*(.5-rand);
end
end
Image(phi)

我一直在使用colorbar和caxis来设置colorbar的范围,我已经阅读了其他一些帖子,但它在我的情况下不起作用,我不知道为什么。我想将颜色条从零0设置为1,单位为100。 虽然,我试过了

Image(phi*10)

它给了我类似于我想要的东西,但它没有显示像0.42和0.45这样的近似数字之间的差异。 在此先感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

首先,不需要for循环,这将做同样的事情:

phi=.5+.2.*(.5-rand(10));
imagesc(phi);

第二,使用:

colormap(jet(16)); 
colorbar;

这会将你的色彩图离散化为你想要多少级别(或区域强度),我选择了16,但你可以玩它并看到它。它还使用最大值和最小值作为色彩图的极值点。

最后,如果仍然不够并且您需要更高的动态范围,则需要编辑色彩图或组合多个色彩图。例如,一种方法是将b \ w与颜色组合,例如

colormap([jet(8); bone(8)] );

enter image description here 等...