matlab绘制单位球的三维网格图,【MATLAB系列03】三维曲面的网格矩阵绘制

前面两期我们介绍了plot函数的绘图作用,这一期我们继续学习三维曲面的Matlab绘制函数。

以马鞍面为例,其方程为:

z = x²/a²-y²/b²

在命令行窗口输入:

>> x=-2:0.1:2;

>> y=-2:0.1:2;

意为从-2到2每隔0.1记录一个数,生成一个数组,0.1是步长。记得后面加“;”,不即时输出结果。

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

meshgrid的作用是生成一个网格矩阵,从工作区的变量属性可以看出,X和Y都是41×41的矩阵。

852478dbfa608b46281a6c1892d40ba4.png

为什么要生成矩阵呢?因为对于曲面方程z = x²/a²-y²/b²而言,每一个x都会对应一列y值,同时每一个y也会对应一列x值。那么,z坐标方向的值的数量应该是x和y两个数组维数的乘积,所以是41×41。

>> Z=X.^2/3-Y.^2/3;

注意这里不是X^2,而是X.^2,因为X是一个矩阵,所以有一点和没一点是有区别的。

ddf033f0b77620d2db0e1a7b21336177.png

X^2是矩阵之间的乘法(X必须是方阵),X.^2则是矩阵中每个元素做平方运算。

接下来就可以用surf函数绘制曲面了,输入:

>> surf(X,Y,Z);

>> axis equal;

>> view(-30,20);

得到结果如下

d1e258736fe029f1464b53ff5d32c3c6.png

曲面上的网格映射到XY平面就是[X,Y],也就是meshgrid函数生成的矩阵;view的作用则是调整图片的观察视角。(如果x和y数组的步长越小,生成的网格就会越密。曲面看上去就会一片黑,放大后才能看清网格)

继续输入:

>> shading interp

98ebb162a83abb181a0f8167025572fb.png

(除去网格)

>> colorbar

921d1d8d835a91b7a35e00b99f413063.png

(添加颜色标尺)

曲面的配色可以用colormap调节,最常见的是colormap('jet'),输入后结果如下:

d1b0f11a92c07631f018bcfaef2ae569.png

如果不熟悉MATLAB中的函数用法,可以用help函数(一个很有用的函数)查询,如:

397de7a96d257fb4821a6a9453eea23a.png

可以看到colormap内置的配色方式有很多种:

53ad9e093650d9c8d385cc5a0074dc9f.png

比如colormap('copper'),结果如下:

2bdcf346194e2f14f55eb28e542864a5.png

今天就讲这么多,在后面的学习过程中,我们还会经常用到矩阵的思维。不要害怕矩阵这两个字,数学不好也不用担心。小编负责搞定数学,你们只需要熟悉语言就行了。

像这一期提到的函数,meshgrid、surf、colormap等,关看字面意思就能猜个八九不离十,需要记的只是函数后面用到哪些参数。

现在,Matlab的面纱才刚揭开一角而已,更多有意思的功能还在等我们去发掘。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值