【问题标题】:How to plot a matrix using surf() command with a non-rectangular domain如何使用具有非矩形域的 surf() 命令绘制矩阵
【发布时间】:2012-10-10 22:45:21
【问题描述】:

我有一个矩阵 Z,我想使用 surf 命令绘制它。我可以使用 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()。

【问题讨论】:

  • 如果在 Z N/A 中设置这些零会发生什么?
  • 不适用是什么意思?我尝试将其分配为 N/A,Matlab 说找不到变量 N。 “N/A”也不起作用。
  • 啊,对不起,NaN,不记得到底是什么令牌:(

标签: matlab plot


【解决方案1】:

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

Z(Z==0)=NaN;

会成功的。您不需要对 X 和 Y 执行此操作。如果您不想绘制的 Z 集合更复杂,您应该以某种方式获取 Z(i,j) 并将其设置为 NaN。

【讨论】:

  • 谢谢!我一直在尝试 null 和 nill 以及我能想到的一切。没想到NaN。
猜你喜欢
  • 1970-01-01
  • 2012-03-05
  • 2021-07-21
  • 1970-01-01
  • 1970-01-01
  • 2011-08-21
  • 1970-01-01
  • 1970-01-01
  • 2018-03-14
相关资源
最近更新 更多