一、mesh 函数 :绘制出在某一区间内完整的网格图
(1)mesh(X,Y,Z)的用法,其中X、Y和Z都是m*n维的矩阵


(2) meshc函数:除了mesh函数图形外,还在xy平面上绘制曲面的等高线

(3)meshz函数:除了mesh函数图形外,还在xy平面上绘制曲面的底座

二、 surf 函数:绘制出在某一区间内完整的曲面图
(1)surf函数和mesh函数的的调用格式基本相同 两者的区别: mesh绘出彩色的线,surf绘出彩色的面

(2)surfc函数:除了surf函数图形外,还在xy平面上绘制曲面的等高线

(3)surfl函数:加上了灯光效果,看起来自然点


设置彩色模式

三、 contour函数:绘制等高线图

contour(x,y,z) 在x-y平面绘制等高线图,Matlab会自动选择等高线的层级


contour(x,y,z,n) 在x-y平面绘制等高线图,n是一个标量,那么Matlab会将等高线的层数设置为
n,且会自动选择层所在的高度。

contour(x,y,z,5,'LineWidth',2) % 设置线的宽度为2
contour(x,y,z,5,'--') % 设置等高线为虚线
contour(x,y,z,5,'ShowText','on') % 显示每一层的高度
contour(x,y,z,5,'--','ShowText','on','LineWidth',2) % 可以组合起来使用
colorbar % 显示颜色栏,也可以手动插入
xlabel('x轴'); ylabel('y轴'); % 加上坐标轴的标签

contour(x,y,z,levels) 若想得到固定的n个高度的等高线,将levels可以设置为n元行向量,其中
向量中的值为高度值。


% 思考如果只想画出高度为3的单等高线怎么办?
contour(x,y,z,[3 3],'ShowText','on')
xlabel('x轴'); ylabel('y轴'); % 加上坐标轴的标签

contourf函数:和contour函数类似,只不过画出来的等高线图有颜色填充
contourf(x,y,z,levels,'ShowText','on')
xlabel('x轴'); ylabel('y轴'); % 加上坐标轴的标签

contour3函数:3维等高线图,等高线不再投影到x-y平面
contour3(x,y,z,levels,'ShowText','on')
xlabel('x轴'); ylabel('y轴'); zlabel('z轴'); % 加上坐标轴的标签

四、 符号函数的三维图形绘制
(1)plot3函数 (类似于plot函数,实际上可以认为画的是三维空间下的折线图)
t = linspace(0,4*pi,100); % 符号是t,t从0变动到4pi,等分为100个点
x = sin(t)+1; % 利用t计算x的值
y = cos(t); % 利用t计算y的值
z = t; % 利用t计算z的值
plot3(x,y,z) % 绘制三维空间下的折线图

plot3(x,y,z,'r--')

(2)fplot3函数 (2016a版本推出的函数,老版本Matlab用的是ezplot3函数,未来版本可能会被淘汰)
syms t% 符号是t
x = sin(t)+1;
y = cos(t);
z = t;
fplot3(x,y,z) % 默认t的变化范围为[-5 5]

fplot3(x,y,z,[0 4*pi]) % 修改t的变化范围为0至4p

(3) fmesh 三维网格图 (2016a版本推出的函数,老版本Matlab用的是ezmesh函数,未来版本可能会被淘汰)
syms x y
z=x^2+y^2;
fmesh(z) % 默认x的变化范围和y的变化范围都是[-5 5]

fmesh(z,[-2 2 -4 4]) % 修改x的变化范围和y的变化范围分别为[-2 2]和[-4 4]

% axis vis3d % 冻结屏幕高宽比,使得一个三维对象的旋转不会改变坐标轴的刻度显示
% axis equal % 设置屏幕高宽比,使得每个坐标轴的具有均匀的刻度间隔
fmesh(z,[-2 2 -4 4],'MeshDensity',11) % 设置每个方向计算的点数

% 画一朵花花送给亲爱的Ta
syms u v
r = 2 + sin(7.*u + 5.*v);
x = r.*cos(u).*sin(v);
y = r.*sin(u).*sin(v);
z = r.*cos(v);
% 可以直接用乘号
% r = 2 + sin(7*u + 5*v);
% x = r*cos(u)*sin(v);
% y = r*sin(u)*sin(v);
% z = r*cos(v);
fmesh(x,y,z,[0 2*pi 0 pi])

(4)fsurf 三维曲面图 (2016a版本推出的函数,老版本Matlab用的是ezsurf函数,未来版本可能会被淘汰)
syms x y
z=x^2+y^2;
fsurf(z) % 默认x的变化范围和y的变化范围都是[-5 5]

fsurf(z,[-2 2 -4 4]) % 修改x的变化范围和y的变化范围分别为[-2 2]和[-4 4]

fsurf(z,[-2 2 -4 4],'MeshDensity',11) % 设置每个方向计算的点数

(5)fcontour 绘制等高线 (2016a版本推出的函数,老版本Matlab用的是ezcontour函数,未来版本可能会被淘汰)
syms x y
z=x^2+y^2;
fcontour(z) % 默认x的变化范围和y的变化范围都是[-5 5]

fcontour(z,[-2 2 -4 4]) % 修改x的变化范围和y的变化范围分别为[-2 2]和[-4 4]

fcontour(z,'fill','on') % 在等高线线条间进行填充

五、Matlab绘制隐函数的图形
% fimplicit3(f) 在默认区间 [-5 5]上绘制 f(x,y,z) = 0 定义的三维隐函数。
f = @(x,y,z) x.^2 + y.^2 - z.^2; % 函数句柄(在拟合那一节里面介绍过),这里要注意,要用点运算符
fimplicit3(f)
xlabel('x轴'); ylabel('y轴'); zlabel('z轴'); % 加上坐标轴的标签
interval = [-5 5 -5 5 0 5]; % 指定范围
fimplicit3(f,interval)

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删