在matlab中绘制没有过渡的轮廓

时间:2014-05-02 12:59:09

标签: matlab plot

我们假设我有三个矩阵X,Y,Z。

X和Y是使用meshgrid创建的,表示二维网格。 Z包含此网格的值,可以是0,1或2。

这些颜色中的每一种都代表一种颜色(红色,绿色和蓝色)。我想用这些颜色作为背景绘制二维网格。目前我正在使用contourf执行此操作:

contourf(X, Y, Z, [0 1 2]);
colormap(bgcolors(1:3,:));

条目1-3包含红色,绿色和蓝色的颜色信息。结果如下: enter image description here

问题是图上方的绿色区域很小。此区域(1)中Z的值不是绿色,但左侧的值为蓝色(2),右侧为红色(0)。 contourf命令使用色彩映射绘制红色和蓝色区域之间的过渡。由于绿色位于色彩映射中的这些值之间,因此转换以绿色绘制。

是否有更好的命令来绘制这些数字?我只想要一个彩色背景,颜色取决于Z的值。

1 个答案:

答案 0 :(得分:0)

如果您的网格是常规的(即类似于meshgrid的输出),您还可以使用imageimagesc,或者,如果图像处理工具箱可用,还可以使用{{3与匹配的色阶一起使用。

imagesc(Z)