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

use*_*276 2 matlab plot

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

surf(X,Y,Z)
Run Code Online (Sandbox Code Playgroud)

其中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 _ _
Run Code Online (Sandbox Code Playgroud)

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

R. *_*ini 6

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

Z(Z==0)=NaN;

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