彩条在matlab表面图像中的使用

Color bar use in matlab surface image

我正在使用 surf 工具在 2D 显示中显示 3D 矩阵作为图像,如下所示:

figure;
title('Plot')
surf(Matrix,'EdgeColor','None');
view(2);
colorbar;

我有兴趣将图像的某些区域与其他区域区分开来,但是由于有一些非常高/非常低的背景值,图像不会使感兴趣区域的颜色明显不同,因为颜色条必须考虑值的整体分布。

有没有办法更改颜色条,使其更多地考虑平均值而不是极端值?

您可以使用 caxis option to tune your color limits, and prctile 来获取百分位级别。将它们结合起来可以让您突出显示部分数据。

例如

caxis(prctile(Matrix(:),[5 90])) 

会将颜色图限制为高于 %5 和低于 %90 的数据。随意修改这个值