Matlab:如何为冲浪地块的单个细胞着色

时间:2014-06-10 13:52:35

标签: matlab plot matlab-figure geometry-surface

我试图根据Z函数值区分冲浪图的单个单元格的颜色,特别是: X,Y是(nxm)矩阵并定义一个表面; Z是一个(n×m),其具有设定为3或4或5的特定点

我试图建立一个冲浪图,其中3,4或5值的单个网格单元的颜色与所有其他表面网格单元的颜色不同。

这里是我得到的代码和图片(在这种特定情况下,只有1个Z点,值为3):

enter image description here

figure;surf(X,Y,Z)

在这个具体的例子中,我的目标是将红色网格单元的颜色与峰值相对应。是否有办法获得它?

事先提前

2 个答案:

答案 0 :(得分:0)

正如评论中所提到的,色彩映射就是答案。困难的部分是正确设置它。诀窍是使色彩图比你需要的大,比如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);

这会产生颜色图块,您必须将Z值放入其中。您需要编写Z值转换代码。你需要写一些东西,将Z的任何元素(例如,5)变成10。

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

答案 1 :(得分:0)

只是为了确定

colormap(jet) 

在这里不起作用? 我完成此操作的方法之一是,在GUI中,您可以手动编辑色彩映射中的色彩映射值。

然后,打印出色彩图

cmap = colormap

然后可以在您的函数中使用这些值。