MATLAB系列笔记:三维绘图(一)
发布日期:2021-05-08 18:43:17 浏览次数:23 分类:精选文章

本文共 2561 字,大约阅读时间需要 8 分钟。

0x00 前言

文章中的文字可能存在语法错误以及标点错误,请谅解;

如果在文章中发现代码错误或其它问题请告知,感谢!

MATLAB版本:MATLAB R2018b。

0x01 三维曲线绘图命令

1.plot3命令

plot3命令是二维绘图plot命令扩展,使用格式基本相同。

例1:
绘制二维曲线和三维曲线。

>> x = 1:0.1:10;>> y = sin(x);>> z = cos(x);>> subplot(1,2,1),plot(y,z)>> subplot(1,2,2),plot3(x,y,z)

在这里插入图片描述例2:

绘制下列方程三维曲线:

f ( n ) = { x = t , y = s i n ( t ) 在 t = [0, 2 π ]区间的三维曲线 t = c o s ( t ) f(n)= \begin{cases} x = t,\\ y = sin(t) & \text {在 t = [0, 2$\pi$]区间的三维曲线} \\t = cos(t) \end{cases} f(n)=x=t,y=sin(t)t=cos(t) t = [0, 2π]区间的三维曲线

>> x = 0:pi/10:2*pi;>> y1 = sin(x);>> y2 = cos(x);>> plot3(y1,y2,x,'m:p')>> grid on

在这里插入图片描述

2.ezplot3命令

同二维一样,提供ezplot3为专门绘制符号函数

调用格式 说明
ezplot3(x,y,z) 在系统默认区域x ∈ \in (-2 π \pi π,2 π \pi π),y ∈ \in (-2 π \pi π,2 π \pi π)上画出空间曲线x=x(t),y=y(t),z=z(t)的图形
ezplot(x,y,z,[a,b]) 绘制上述参数曲线在a ∈ \in (a,b),b ∈ \in (a,b)上的三维网格曲线
ezplot(…,‘animate’) 产生一个空间曲线的动画轨迹

2三维网格命令

1.mesh命令

该命令生成的是由X,Y和Z指定的网线面,而不是单根曲线,它的主要使用格式如下:

调用格式 说明
mesh(X,Y,Z) 绘制三维网格图,颜色和曲面的高度匹配。若X和Y均为向量,且length(X)=n,length(Y)=m,而[m,n]=size(Z),空间中的点(X(j),Y(i),Z(i,j))为曲面网线的交点,若X与Y均为矩阵,而空间中的点(X(j),Y(i),Z(i,j))为所画曲面的网线交点
mesh(X,Y,Z,c) 同mesh(X,Y,Z),只不过颜色由c指定
mesh(Z) 生成的网格图满足X=1:n与Y=1:m,[n,m]=size(Z),其中Z为定义在矩形区域上的单值函数
mesh(…,‘PropertyName’,PropertyValue,…) 对指定的属性PropertyName设置属性值PropertyValue,可以在同一语句中对多个属性进行设置
h=mesh(…) 返回图形对象句柄

例2:

绘制网格面z=x4 + y5

>> x = -4:0.25:4;>> y = x;>> [X,Y]=meshgrid(x,y);>> Z=X.^4+y.^5;>> mesh(Z);>> title('网格面')>> xlabel('x'),ylabel('y'),zlabel('z')

在这里插入图片描述

例3:

使用peaks产生一个山峰曲面函数,利用它画两个图,一个显示其背后的网格,一个不显示:

>> t = -4:0.1:4;>> [X,Y] = meshgrid(t);>> Z = peaks(X,Y);>> subplot(1,2,1)>> mesh(X,Y,Z),hidden on>> title('不显示网格')>> subplot(1,2,2)>> mesh(X,Y,Z),hidden off>> title('显示网格')

在这里插入图片描述

2.ezmesh命令

ezmesh专门用来绘制符号函数f(x,y)网格图

调用格式 说明
ezmesh(f) 绘制f在系统默认区域x ∈ \in (-2 π \pi π,2 π \pi π),y ∈ \in (-2 π \pi π,2 π \pi π) 内的三维网格图
ezmesh(f,[a,b]) 绘制f在区域x ∈ \in (a,b),y ∈ \in (a,b)内的三维网格图
ezmesh(f,[a,b,c,d]) 绘制f在区域x ∈ \in (a,b),y ∈ \in (c,d)内的三维网格图
ezmesh(x,y,z) 绘制参数曲面x=x(s,t)y=y(s,t),z=z(s,t)在系统默认区域s ∈ \in (-2 π \pi π,2 π \pi π) ,t ∈ \in (-2 π \pi π,2 π \pi π) 内的三维网格图
ezmesh(x,y,z,[a,b]) 绘制上述参数曲面在s ∈ \in (a,b),t ∈ \in (a,b)内的三维网格图
ezmesh(x,y,z,[a,b,c,d]) 绘制上述参数曲面在s ∈ \in (a,b),t ∈ \in (c,d)内的三维网格图
ezmesh(…,n) 绘制f在系统默认区域x ∈ \in (-2 π \pi π,2 π \pi π),y ∈ \in (-2 π \pi π,2 π \pi π) 内的三维网格图,其中网格数为n*n,n默认值为60
ezmesh(…,‘circ’) 在中心圆盘上绘制f的三维网格图

例4:

绘制下列函数三维网格图:
f(x,y)=ey sinx-ex cosy+ex ey

>> syms x y>> f = sin(x)*exp(y)-cos(y)*exp(x)+exp(x)+exp(y);>> ezmesh(f,[-pi,pi],30)>> title('带网格线的三维表面图')

在这里插入图片描述

以上。
参考文档:
1.(Markdown 公式指导手册)
2.(数学符号和公式)
3.天工在线.中文版MATLAB2018从入门到精通(实战案例版)[M].北京:中国水利水电出版社,2018.

上一篇:LeetCode:面试题46. 把数字翻译成字符串(C语言)
下一篇:LeetCode:128. Longest Consecutive Sequence最长连续序列(C语言)

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2025年04月07日 21时44分39秒