注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

一粒浮尘

飘渺虚无

 
 
 

日志

 
 

matlab surf 函数画3维图  

2012-10-16 16:41:58|  分类: Software |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

这个函数很方便。在matlab的环境下,这种交互式的画图方式很节约时间。不过如果对surf函数作图的一些细节不去了解清楚的话,可能会导致一些错误,一下是我使用时的一些总结:

假 设有两列数X[N],Y[N],等间隔,以此可以弄出一个二维的格子,格子上每点的坐标就是(x,y),然后对每一个点赋予一个(函数)值,其实就是定义 了一个2维的数组,记作A[N][N]。matlab数组的index顺序和c语言的一样,在此就不说了。这里我给A赋值的时候A的第一维对应X,第二维 对应Y。调用surf函数画图的时候,输入如下命令:

surf(X,Y,A)

但是这样画出来的图并不是正确的。why???

经 过几次尝试以后,我发现,可以这么去理解:surf函数画出来的图中对应的每一点的(x,y)都是从(X,Y)中取出来的,每次都是先取X中的一个数,而 Y则是暂时固定住的。但是每次从A中取出一个元素的时候,却是顺序着取的,也就是按照最初赋值的顺序,这样,每次都是Y维的指标先变化。由此一来,每次取 出的(x,y)和A并不是真正一一对应的,但是画图时只要稍微变一下即可:

surf(X,Y,A')

A'表示A的转置,这样取坐标跟取A的顺序就一致了。

  评论这张
 
阅读(3820)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017