xmwhit 发表于 2009-1-15 10:34

请教该图用什么函数绘画

请教高人:
如图,给定了相同维数的向量x,y,和δy,用什么函数画?
万分感谢!

wqsoooooooooo 发表于 2009-1-15 12:58

hihi

mesh(x,y,z);

xmwhit 发表于 2009-1-15 14:19

回复 沙发 wqsoooooooooo 的帖子

不行啊,图中每个锯齿的齿尖代表δy的值,mesh只是把这些值连成曲面的形状,没有锯齿两边的斜线!另外,mesh也不能对向量直接操作啊??
其实上面的图中对于每一对x和y,δy是常数,用mesh画出来就是个平面,如下图。



还请高人进一步指点!

[ 本帖最后由 xmwhit 于 2009-1-15 14:32 编辑 ]

xmwhit 发表于 2009-1-15 21:35

很着急,自己顶一下!

ChaChing 发表于 2009-1-15 22:21

mesh(x,y,δy)不行吗?

ch_j1985 发表于 2009-1-15 23:25

回复 楼主 xmwhit 的帖子

doc surf
doc plot3
看看这两个可以不?

xmwhit 发表于 2009-1-16 08:26

回chaching:
直接用mesh(x,y,δy)不行,显示:
Warning: Z must not be a scalar or vector, not rendering surface。
我用meshgrid生成网格后再用mesh,出来的就是个平面。需要说明一下的是,x,y,δy分别是时间的函数,时间采样后分别是一定维数的向量,所以我想不应该用mesh,因为时间采样之外的x和y,没有δy与之对应。
另外,mesh不能直接对向量操作,这和matlab版本有关系么?我用的是R2006a。

回ch_j1985:
doc surf和doc plot3是什么函数,我找不到啊,matlab不认

非常感谢两位的帮助,我自己也在冥思苦想,甚至猜测是不是需要自己编一个函数,但是觉得很复杂,不是那么简单。

wynstone 发表于 2009-1-16 08:57

持续关注中...

friendchj 发表于 2009-1-16 10:13

不知道你的数据具体什么样的。我的思路如此:对原来的数据进行补值,即在原来数据的每个元素两边补充在xoy平面上的点。这样看起来就有锯齿状了。

xmwhit 发表于 2009-1-16 11:03

回复 9楼 friendchj 的帖子

我开始也是这样想的,数据填充后,用mesh和plot3肯定都不行,画出来的样子也是很乱。我试着对每一组x,y和δy画出一个三角,然后在同一幅图中重复画,锯齿是有,但和原图差很多,不是很清晰。
另外原图中xoy平面有黑色的阴影。
我现在怀疑该图是否是用matlab所画!
非常感谢大家的帮助和关心。

xmwhit 发表于 2009-1-16 11:17

又调整了一下参数,得到下面的图,看起来差不多,不过仔细观察后,发现原来的图之所以视觉效果好,是因为有个不透明的效果,就是外面的锯齿可以把里面的锯齿挡住,另外就是那个黑色阴影区域。不知是否有高人知道原因,恳请指点!

ch_j1985 发表于 2009-1-16 23:42

回复 11楼 xmwhit 的帖子

doc shading
doc view
试试上面的命令

xmwhit 发表于 2009-1-17 10:20

感谢ch_j1985,我把相关的画图命令都doc了一下。采用的是fill3的命令!
我在画黑色阴影部分时,用fill3把xoy平面上的矩形部分填充成黑色,然后猛然发现在画锯齿的时候用fill3就ok了!
不过黑色区域会挡到部分锯齿,不知为何,当然这些都是无关紧要的问题了。
感谢大家。


[ 本帖最后由 xmwhit 于 2009-1-17 10:26 编辑 ]
页: [1]
查看完整版本: 请教该图用什么函数绘画