MATLAB 绘图函数总结
绘图函数
目录
输入坐标的绘图函数
二维线图函数
plot(x,y)
三维线图函数
plot3(x,y)
曲面图函数
surf(x,y,z) 曲面图
mesh(x,y,z) 网格图
meshgrid() 二维和三维网格
二维网格(网格矩形面)
[X,Y] = meshgrid(x,y)
基于向量 x
和 y
中包含的坐标返回二维网格坐标。X
是一个矩阵,每一行是 x
的一个副本;Y
也是一个矩阵,每一列是 y
的一个副本。坐标 X
和 Y
表示的网格有 length(y)
个行和 length(x)
个列。
[X,Y] = meshgrid(x)
与 [X,Y] = meshgrid(x,x)
相同,并返回网格大小为 length(x)
×length(x)
的方形网格坐标。
X,Y都为二维矩阵
三维网格(网格矩形空间)
[X,Y,Z] = meshgrid(x,y,z)
返回由向量 x
、y
和 z
定义的三维网格坐标。X
、Y
和 Z
表示的网格的大小为 length(y)
×length(x)
×length(z)
。
[X,Y,Z] = meshgrid(x)
与 [X,Y,Z] = meshgrid(x,x,x)
相同,并返回网格大小为 length(x)
×length(x)
×length(x)
的三维网格坐标。
X,Y,Z都为三维矩阵
surf和mesh的程序实例
clc,clear
t = -3:0.1:3;
[X,Y] = meshgrid(t);
Z=X.^2 + Y.^2; %曲面:z=x^2+y^2
%画曲面
subplot(1,2,1)
mesh(X,Y,Z);
title('mesh函数画曲面z=x^2+y^2')
subplot(1,2,2)
surf(X,Y,Z);
title('surf函数画曲面z=x^2+y^2')
输入函数方程(隐函数)的绘图函数
二维线图函数
fplot() 绘制 y=f(x)
fplot(f)
在默认区间 [-5 5]
(对于 x
)绘制由函数 y = f(x)
定义的曲线。
fplot(f,xinterval)
将在指定区间绘图。将区间指定为 [xmin xmax]
形式的二元素向量。
f = @(x) sin(x);
interval = [-pi pi];
fplot(f,interval)
title('fplot函数画曲线 y=sin(x)')
fimplicit() 绘制二维隐函数
fimplicit(f)
在默认区间 [-5 5]
(对于 x
和 y
)上绘制 f(x,y) = 0
定义的隐函数。
fimplicit(f,interval)
为 x
和 y
指定绘图区间。
绘制x^2+y^2=1
f = @(x,y) x.^2 + y.^2 - 1;
interval = [-2 2 -2 2];
fimplicit(f,interval,':b');
title('fimplicit函数画曲线 x^2 + y^2 = 1')
注意方程f表达式运算符^前要加'.'号
三维线图函数
fplot3()绘制参数曲线方程
fplot3(funx,funy,funz)
在默认区间 [-5,5]
(对于 t
)绘制由 x = funx(t)
、y = funy(t)
和 z = funz(t)
定义的参数化曲线。
fplot3(funx,funy,funz,tinterval)
将在指定区间绘图。将区间指定为 [tmin tmax]
形式的二元素向量。
xt = @(t) sin(t);
yt = @(t) cos(t);
zt = @(t) t;
fplot3(xt,yt,zt)
title('fplot3函数画参数方程曲线 x=sin(t),y=cos(t),z=t')
三维曲面图函数
fsurf()绘制二元方程曲面
fsurf(f)
在默认区间 [-5 5]
(对于 x
和 y
)为函数 z = f(x,y)
创建曲面图。
fsurf(f,xyinterval)
将在指定区间绘图。要对 x
和 y
使用相同的区间,请将 xyinterval
指定为 [min max]
形式的二元素向量。要使用不同的区间,请指定 [xmin xmax ymin ymax]
形式的四元素向量。
f=@(x,y) sin(x)+cos(y);
fsurf(f)
title('fsurf函数画曲面 z=sin(x)+cos(y)')
fsurf()绘制二元参数方程曲面
fsurf(funx,funy,funz)
在默认区间 [-5 5]
(对于 u
和 v
)绘制由 x = funx(u,v)
、y = funy(u,v)
、z = funz(u,v)
定义的参数化曲面。
fsurf(funx,funy,funz,uvinterval)
将在指定区间绘图。要对 u
和 v
使用相同的区间,请将 uvinterval
指定为 [min max]
形式的二元素向量。要使用不同的区间,请指定 [umin umax vmin vmax]
形式的四元素向量。
注意:只能绘制二元函数方程
funx = @(u,v) cos(u).*sin(v);
funy = @(u,v) sin(u).*sin(v);
funz = @(u,v) cos(v);
fsurf(funx,funy,funz,[0 2*pi 0 pi])
title('fsurf函数参数法画球面 x^2+y^2+z^2=1')
fimplicit3() 绘制三维隐函数
fimplicit3(f)
在默认区间 [-5 5]
(对于 x
)和 y
(对于 z
)上绘制 f(x,y,z) = 0
定义的三维隐函数。
fimplicit3(f,interval)
为 x
、y
和 z
指定绘图区间。
f = @(x,y,z) x.^2 + y.^2 - z.^2;
interval = [-5 5 -5 5 0 5];
fimplicit3(f,interval);
title('fimplicit3函数画曲面 x^2 + y^2 = z^2')
绘制散点图
scatter绘制二维散点图
scatter(x,y)
在向量 x
和 y
指定的位置创建一个包含圆形的散点图。该类型的图形也称为气泡图。
scatter3绘制三维散点图
scatter3(X,Y,Z)
在向量 X
、Y
和 Z
指定的位置显示圆圈。
绘制极坐标图
polarplot()绘制极坐标图
polarplot(theta,rho)
在极坐标中绘制线条,由 theta
表示弧度角,rho
表示每个点的半径值。输入必须是长度相等的向量或大小相等的矩阵。如果输入为矩阵,polarplot
将绘制 rho
的列对 theta
的列的图。也可以一个输入为向量,另一个为矩阵,但向量的长度必须与矩阵的一个维度相等。
theta = linspace(0,6*pi);
rho1 = theta/10;
polarplot(theta,rho1,'--') %虚线
title('polarplot函数绘制螺旋线 r=theta/10')
极坐标转化为笛卡尔坐标
[x,y] = pol2cart(theta,rho)
将极坐标数组 theta
和 rho
的对应元素转换为二维笛卡尔坐标或 xy 坐标。
[x,y,z] = pol2cart(theta,rho,z)
将柱坐标数组 theta
、rho
和 z
的对应元素转换为三维笛卡尔坐标或 xyz 坐标。
绘制曲面与平面相交的曲线
参数方程法(三角函数法)
参数方程法画曲面z=x^2+2*y^2与曲面z=2-x^2的交线
clc,clear
t = -2:0.1:2;
[X,Y] = meshgrid(t);
Z= X.^2 + 2.*Y.^2; %曲面:z=x^2+2*y^2
Z2= 2 - X.^2; %曲面2:z=2-x^2
%画曲面
subplot(1,2,1)
mesh(X,Y,Z);
hold on
mesh(X,Y,Z2);
title('曲面 z=x^2+y^2 与 z=2-x^2')
grid on
xlabel('X')
ylabel('Y')
zlabel('Z')
axis equal
%画交线 x^2+y^2=1,z=1+y^2
%参数方程:x=cos(t),y=sin(t),z=1+sin^2(t)
t=0:0.1:2*pi;
x=cos(t);
y=sin(t);
z=1+y.^2;
subplot(1,2,2)
plot3(x,y,z);
title('曲面 z=x^2+y^2 与 z=2-x^2 的交线')
xlabel('X')
ylabel('Y')
zlabel('Z')
axis equal
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)