网格数据生成函数meshgrid

想要画三维图,得到网格坐标非常重要,matlab提供了一个叫做meshgrid的函数,很容易就可根据参数生成网格化坐标,当然,这些网格化坐标是以一种特定的计算方法生成的。

语法:

[X,Y] = meshgrid(x,y)

[X,Y] = meshgrid(x)

说明:在这里第一种方式,x,y都是向量,而生成的X,Y则是矩阵。其中X的每一行是由x中的数按顺序构成,Y的每一列由y中的数按顺序构成

第二种方式本质上是x与y相等情况下的一种简写。

来看一些例子:

>> x=1:4

x =

1     2     3    4

>> y=1:5

y =

1     2     3    4     5

>> [X,Y]=meshgrid(x,y)

X =

1     2     3    4

1     2     3    4

1     2     3    4

1     2     3    4

1     2     3    4

Y =

1     1     1    1

2     2     2    2

3     3     3    3

4     4     4    4

5     5     5    5

可以看出,生成的X,Y维数相同,相同位置数据构成一组数(坐标),这样就构成了一个网格。

当然,还有另一种网格数据生成方式,

>> x=1:4

x =

1     2     3    4

>> y=(1:5)'   

y =

1

2

3

4

5

>> X=ones(size(y))*x

X =

1     2     3    4

1     2     3    4

1     2     3    4

1     2     3    4

1     2     3    4

>> Y=y*ones(size(x))

Y =

1    1     1     1

2     2     2    2

3     3     3    3

4     4     4    4

5     5     5    5

两种方式结果相同,当然,meshgrid函数要复杂得多,有兴趣的可以在matlab命令行输入edit meshgrid,打开meshgrid函数看看。得到网格数据之后,那么便可进行三维图形绘制了。

>> Z=X.^2+Y

Z =

2     5    10   17

3     6    11   18

4     7    12   19

5     8    13   20

6     9    14   21

>> surf(X,Y,Z)

这样一个三维图形就已经画好了,本质上也就是将二维坐标与第三维坐标结合形成三维坐标,然后连线,填充生成曲面。

我的公众号:简单编程之旅

欢迎关注!

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值