如何使用具有非矩形域的surf()命令绘制矩阵

时间:2012-10-10 22:45:21

标签: matlab plot

我有一个矩阵Z,我想使用surf命令绘制。我可以使用冲浪命令绘制它,但我希望Z的一部分不会出现在情节中。我假设我需要做的是使用符号

surf(X,Y,Z)

其中X和Y是定义相应z值的(x,y)坐标的矩阵。我想知道的是我作为Z中不应绘制的点的(x,y)坐标,即x和y应该没有。

例如:

Z = 1 5 7
    2 6 0 
    3 0 0
    4 0 0

X = 1 1 1
    2 2 _
    3 _ _
    4 _ _

Y = 1 2 3
    1 2 _
    1 _ _
    1 _ _

空间会怎么样?我不能把数字设为0,因为所有的值都只会到原点。如果有更好的方法可以使用,我不必使用surf()。

1 个答案:

答案 0 :(得分:6)

将Z中您不想绘制的所有值设置为NaN。例如,如果您不想绘制Z的零,那么

Z(Z==0)=NaN;

会做到这一点。你不需要用X和Y做这个。如果你不想绘制的Z的集合更复杂,你应该以某种方式获得Z(i,j)并将它们设置为NaN。