实验二MATLAB绘图
一.实验目的
掌握matlab二维图形和三维图形的绘制方法,并会对图形进行处理,掌握符号函数(显函数、隐函数和参数方程)的画图,掌握空间曲线和空间曲面的绘图,会对所绘图形进行加格栅,图例和标注等一些简单的处理.
二.实验原理与方法
(一).曲线图:
Matlab作图是通过描点、连线来实现的,故在画一个曲线图形之前,必须先取得该图形上的一系列的点的坐标(即横坐标和纵坐标),然后将该点集的坐标传给Matlab函数画图.命令格式为:plot(x,y,s)
其中x,y分别表示所取点集的横纵坐标,s指定线型及颜.缺省时表示画的是蓝实线.Plot(X,Y1,S1,X,Y2,S2,……,X,Yn,Sn)
表示将多条线画在一起.
例在[0,2*pi]用红线画sin(x),用绿圈画cos(x). 解:x=linspace(0,2*pi,30);
y=sin(x);
z=cos(x);
plot(x,y,’r’,x,z,’g o’)
所得图形如下图所示
(二)符号函数(显函数、隐函数和参数方程)画图
(1) ezplot
ezplot(‘f(x)’,[a,b])
表示在a<x<b绘制显函数f=f(x)的函数图
ezplot(‘f(x,y)’,[xmin,xmax,ymin,ymax])
表示在区间xmin<x<xmax和 ymin<y<ymax绘制隐函数f(x,y)=0的函数图
ezplot(‘x(t)’,’y(t)’,[tmin,tmax])
表示在区间tmin<t<tmax绘制参数方程x=x(t),y=y(t)的函数图.
例在[0,pi]上画y=cos(x)的图形
解输入命令:ezplot(‘sin(x)’,[0,pi])
例 在[0,2*pi]上画t x 3cos =,t y 3sin =星形图
解 输入命令:ezplot(‘cos(t).^3’,’sin(t).^3’,[0,2*pi])
例 在[-2,0.5],[0,2]上画隐函数0)sin(=+xy e x 的图
解 输入命令:ezplot('exp(x)+sin(x.*y)',[-2,0.5,0,2])
(2) fplot
格式:fplot(‘fun’,lims)
表示绘制字符串fun 指定的函数在lims=[xmin,xmax]的图形
注意:
[1] fun 必须是M 文件的函数名或是独立变量为x 的字符串.
[2] fplot 函数不能画参数方程和隐函数图形,但在一个图上可以画多个图形。 例 在[-1,2]上画)3sin(22x e y x +=的 图形
解 先建M 文件myfun1.m :function Y=myfun1(x)
Y=exp(2*x)+sin(3*x.^2)
再输入命令:fplot(‘myfun1’,[-1,2])
例 在[-2,2]范围内绘制函数tanh 的图形
解 fplot(‘tanh’,[-2,2])
例 x 、y 的取值范围都在[-π2,π2],画函数tanh(x),sin(x),cos(x)的图形
解 输入命令: fplot(‘[tanh(x),sin(x),cos(x)]’,2*pi*[-1 1 –1 1])
(三)对数坐标图
在很多工程问题中,通过对数据进行对数转换可以更清晰地看出数据的某些特征,在对数坐标系中描绘数据点的曲线,可以直接地表现对数转换.对数转换有双对数坐标转换和单轴对数坐标转换两种.用loglog 函数可以实现双对数坐标转换,用semilogx 和semilogy 函数可以实现单轴对数坐标转换
loglog() 表示 x 、y 坐标都是对数坐标系
semilogx() 表示 x 坐标轴是对数坐标系
semilogy(…) 表示y 坐标轴是对数坐标系
plotyy( ) 有两个y 坐标轴,一个在左边,一个在右边例 用方形标记
创建一个简单的loglog
如何用matlab将已知点连线解 输入命令:
x=logspace(-1,2);
loglog(x,exp(x),’-s’)
grid on %标注格栅.
例 创建一个简单的半对数坐标图
解 输入命令:
x=0:.1:10;
semilogy(x,10.^x)
(四)三维曲线
命令格式: plot3(x,y,z,s)
n 维向量,分别表示曲线上点集的横坐标、纵坐标、函数值.
s 指定颜、线形等
例 在区间[0,10*pi]画出参数曲线x=sin(t),y=cos(t),z=t.
解 t=0:pi/50:10*pi;
plot3(sin(t),cos(t),t)
(五)三维网格图
格式:mesh(x,y,z) %画出三维网格图
meshc(x,y,z) %画出等高线的三维网格图.
Meshz(x,y,z) %画出带有底座的三维网格图.
说明:若x 与y 均为向量,若n=length(X),m=length(y),则 Z 必须为行数和列数分别为m,n 的矩阵,空间中的点(x(j),y(i),z(i,j))为所画曲面网线的交点,x 对应z 的列,y 对应z 的行.
在三维作图中常用到命令meshgrid,其功能是生成二元函数z=f(x,y)中x-y 平面上的矩形定义域中数据点矩阵X 和Y,其命令格式为:
[X,Y]=meshgrid(x,y)
例 画函数Z=(X+Y).^2的图形.
解:x=-3:0.1:3;
y=1:0.1:5;
[X,Y]=meshgrid(x,y);
Z=(X+Y).^2;
例:绘出带有等高线的马鞍面22
225
4y x z -= 解:从命令窗口输入如下命令
x=-8:8;
y=-8:8;
[X,Y]=meshgrid(x,y);
Z=X.^2/4^2-Y.^2/5^2;
Meshc(X,Y,Z)
(六).三维曲面图
格式:surf(X,Y,Z) %绘出三维曲面图
surfc(X,Y,Z) %绘出带有等高线的三维曲面图.
说明:surf 同mesh 命令的用法和格式相同,不同之处在于所得图形是一个彩曲面而非彩网格
例:使用surf 命令绘制马鞍面22
225
4y x z -= (七).三维旋转曲面图
格式:[x,y,z]=cylinder(r,n)
说明:返回高度为1的旋转曲面x,y,z 轴的坐标,旋转轴为Z 轴,向量r 指定母线到z 轴的距离,旋转曲面的圆周有指定的n 个距离相同的点,用户可以用命令surf 或mesh 画出其图像. 例,绘制一个旋转抛物面60/)(2
2y x z +=
解:z=0:20;
r=(60*z).^(1/2);
[x,y,z]=cylinder(r,40);
mesh(x,y,z)
(八).三维球面图
格式:[x,y,z]=sphere(n)
说明:生成三维直角坐标系中的单位球体坐标,该单位球体有n n ⨯个面.该命令并未画图,只是返回坐标矩阵,用户可用surf(x,y,z)或mesh(x,y,z)画图.
例:[x,y,z]=sphere(50);
mesh(x,y,z);
(九).等高线图
格式一: contour(x,y,z,n)
说明:(x,y)是平面z=0上点的坐标矩阵,z 为相应点的高度值矩阵,等高曲线是一个平面曲线,n 为等高线条数.
例: [X,Y] = meshgrid(-2:.2:2,-2:.2:3);
Z = X.*exp(-X.^2-Y.^2);
contour(X,Y,Z,4)
格式二: clabel(C,h)
说明:在从命令contour 生成的二维等高线结构C 的位置上添加标签h.
例 [X,Y] = meshgrid(-2:.2:2,-2:.2:3);
Z = X.*exp(-X.^2-Y.^2);
[c,h]=contour(X,Y,Z,4);
clabel(c,h)
格式三.contour3(x,y,z,n)
说明:用x 和y 定义x 轴和y 轴的范围,画出由矩阵Z 确定的n 条等高线的三维图. 例 [X,Y] = meshgrid(-2:.2:2,-2:.2:3);
Z = X.*exp(-X.^2-Y.^2);
Contour3(X,Y,Z,8)
(十)处理图形
1.在图形上加格栅、图例和标注
格式:grid on: 加格栅在当前图上
grid off: 删除格栅
xlabel(string): 在当前图形的x轴上加图例stringylabel(string): 在当前图形的y轴上加图例stringzlabel(string): 在当前图形的z轴上加图例
stringzlabel(string): 在当前图形的z轴上加图例string
title(string): 在当前图形的顶端上加图例string
例在区间[0,2*pi]画sin(x)的图形,并加注图例“自变量X”、“函数Y”、“示意图”, 并加格栅
解 x=linspace(0,2*pi,30);
y=sin(x);
plot(x,y)
xlabel('自变量X')
ylabel('函数Y')
title('示意图')
grid on
2、定制坐标
格式:Axis([xmin, xmax, ymin, ymax])
Axis([xmin, xmax, ymin, ymax, zmin, zmax])
其中输入参数分别表示x、y、z的最大、最小值
Axis auto 将坐标轴返回到自动缺省值
axis equal 或axis(‘equal’) x轴和y轴的单位长度相同
axis square 或axis(‘square’)图框呈方形
axis off 或axis(‘off’)清除坐标刻度
例 x = 0:.025:pi/2;
plot(x,tan(x),'-ro')
axis([0 pi/2 0 5])
注意图形变化
3、图形保持
(1) hold on 保持当前图形, 以便继续画图到当前图上 hold of 释放当前图形窗口
例将y=sin(x)、y=cos(x)分别用点和线画出在同一屏幕上。
解 x=linspace(0,2*pi,30);
y=sin(x);
z=cos(x)
plot(x,z)
hold on
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论