用小数字可视化矩阵

Visualize a matrix with small numbers

我生成了一个随机矩阵。我想在绘图上显示它并查看不同颜色的不同值。

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 的范围,我已经阅读了一些其他帖子,但它在我的情况下不起作用,我不知道为什么。我想用 100 个单位将颜色条从零设置为 0 到 1。 虽然,我试过了

Image(phi*10)

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

首先,不需要 for 循环,这样做也是一样的:

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

第二,使用:

colormap(jet(16)); 
colorbar;

这会将你的颜色图离散化为你想要的级别(或 bin 强度),我选择了 16,但你可以玩它并且 see.It 也使用最大值和最小值作为极值点颜色图。

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

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

等...