Matlab:如何为冲浪图的单个单元格着色

Matlab:如何为冲浪图的单个单元格着色,matlab,plot,matlab-figure,geometry-surface,Matlab,Plot,Matlab Figure,Geometry Surface,我试图根据Z函数值区分冲浪图中单个单元格的颜色,特别是: 十、 Y是(nxm)矩阵,定义一个曲面; Z是一个1(nxm),其中某些特定点设置为3、4或5 我正在尝试绘制一个冲浪图,其中具有3、4或5值的单个网格单元的颜色与所有其他曲面网格单元的颜色不同 下面是我得到的代码和图像(在这个特定的例子中,只有1个Z点的值=3): 在这个具体的例子中,我的目标是将对应于峰值的网格单元涂成红色。有没有办法获得它 提前通知如评论中所述,彩色地图就是答案。困难的部分是正确地设置它。诀窍是使colormap比

我试图根据Z函数值区分冲浪图中单个单元格的颜色,特别是: 十、 Y是(nxm)矩阵,定义一个曲面; Z是一个1(nxm),其中某些特定点设置为3、4或5

我正在尝试绘制一个冲浪图,其中具有3、4或5值的单个网格单元的颜色与所有其他曲面网格单元的颜色不同

下面是我得到的代码和图像(在这个特定的例子中,只有1个Z点的值=3):

在这个具体的例子中,我的目标是将对应于峰值的网格单元涂成红色。有没有办法获得它


提前通知

如评论中所述,彩色地图就是答案。困难的部分是正确地设置它。诀窍是使colormap比您需要的更大,比如说10x3,在colormap内制作一些箱子,然后缩放Z以适应这些箱子。例如:

cmap(1, 1) = [0 0 0];
cmap(2:4, 1) = [0 0 1];
cmap(5:7, 1) = [0 1 0];
cmap(8:10, 1) = [1 0 0];
colormap(cmap);
这将创建colormap容器,您必须将Z值放入其中。您需要编写Z值转换代码。你需要写一些东西,把Z的任何元素,比如5,变成10

我用图像解决了一个类似的问题,所以如果你和我一起工作,我们可以给你一个准确的答案。

只是为了确定

colormap(jet) 
这不管用吗? 我这样做的方法之一是,在GUI中,您可以手动编辑colormap中的colormap值

然后,打印出颜色图

cmap = colormap

然后这些值可以用在函数中

关键是,使用colormap,我仍然没有得到峰值颜色为红色的网格单元。也许你需要更改colormap中的位数?但同时,你有没有试过当顶峰不在边缘的时候?请记住,这是顶点而不是具有该值的面,然后将该值签名到该顶点旁边(之后)的面。因此,如果它在末端,你将看不到颜色,因为它将离开你的表面。
cmap = colormap