当前位置:文档之家› 实验五MATLAB的基本绘图方法

实验五MATLAB的基本绘图方法

实验三MATLAB的基本绘图方法
一、实验目的
1.二维平面图形的绘制
2.三维立体图形的绘制
3.隐函数作图
二、实验地点:A404
三、实验日期:
四、实验内容
(一)二维平面图形的绘制
1、Plot的使用方法介绍
plot 是绘制二维图形的最基本函数,它是针对向量或矩阵的列来绘制曲线的。

也就是说,使用plot 函数之前,必须首先定义好曲线上每一点的x 及y 坐标,常用格式为:(1)plot(x) 当x 为一向量时,以x 元素的值为纵坐标,x 的序号为横坐标值绘制
曲线。

当x 为一实矩阵时,则以其序号为横坐标,按列绘制每列元素值相对于其序号的曲线,当x 为m×n 矩阵时,就由n 条曲线。

(2)plot(x,y) 以x 元素为横坐标值,y 元素为纵坐标值绘制曲线。

(3)plot(x,y1,x,y2,…) 以公共的x 元素为横坐标值,以y1,y2,…元素为纵坐标值绘制多条曲线。

例1:画出一条正弦曲线和一条余弦曲线。

>> x=0:pi/10:2*pi;
>> y1=sin(x);
>> y2=cos(x);
>> plot(x,y1,x,y2)
注:在绘制曲线图形时,常常采用多种颜色或线型来区分不同的数据组,MA TLAB 软件专门提供了这方面的参数选项,我们只要在每个坐标后加上相关字符串,就可实现它们的功能。

具体参见教材。

2、图形修饰
MATLAB 软件为用户提供了一些特殊的图形函数,用于修饰已经绘制好的图形。

图形修饰函数表如下:
函数含义
grid on (/off) 给当前图形标记添加(取消)网络
xlable(‘string’) 标记横坐标
ylabel(‘string’) 标记纵坐标
title(‘string’) 给图形添加标题
text(x,y,’string’) 在图形的任意位置增加说明性文本信息
gtext(‘string’) 利用鼠标添加说明性文本信息
axis([xmin xmax ymin ymax]) 设置坐标轴的最小最大值
例2、给例1的图形中加入网络和标记。

>> x=0:pi/10:2*pi;
>> y1=sin(x);
>> y2=cos(x);
>> plot(x,y1,x,y2)
>> grid on
>> xlabel('independent variable X')
>> ylabel(‘Dependent Variable Y1 & Y2’)
>> title('Sine and Cosine Curve')
>> text(1.5,0.3,'cos(x)')
>> gtext('sin(x)')
>> axis([0 2*pi -0.9 0.9])
3、图形的比较显示
在一般默认的情况下,MA TLAB 每次使用plot 函数进行图形绘制,将重新产生一个图
形窗口。

但有时希望后续的图形能够和前面所绘制的图形进行比较。

一般来说有两种方法:一是采用hold on(/off)命令,将新产生的图形曲线叠加到已有的图形上;
二是采用subplot(m,n,k)函数,将图形窗口分隔成n ×m 个子图,并选择第k 个子图作为当前图形,然后在同一个视图窗口中画出多个小图形。

例3、在多个窗口中绘制图形。

>> x=0:pi/10:2*pi;
>> y1=sin(x);
>> y2=cos(x);
>> subplot(2,2,1);
>> plot(x,y1);
>> subplot(2,2,2);
>> plot(x,y2);
(二)三维立体图形
1、三维曲线图
与二维图形相对应,MA TLAB 提供了plot3 函数,可以在三维空间中绘制三维曲线,它的格式类似于plot,不过多了z 方向的数据。

plot3 的调用格式为:
plot3(x1,y1,z1,x2,y2,z2,...)
其中x1,y1,z1,x2,y2,z2,…等分别为维数相同的向量,分别存储着曲线的三个坐标值,该函数的使用方式和plot 类似。

例1、绘制方程x=t,y=sin(t),z=cos(t)
在t=[0,2*pi]上的立体图形。

>> clf
>> x=0:pi/10:2*pi;
>> y1=sin(x);
>> y2=cos(x);
>> plot3(y1,y2,x,'*b')
>> grid on
>> xlabel('Dependent Variable Y1')
>> ylabel('Dependent Variable Y2')
>> zlabel('Independent Variable X')
>> title('Sine and Cosine Curve')
2、三维曲面图
如果要画一个三维的曲面,可以使用mesh(X,Y,Z)或surf(X,Y,Z)函数来实现。

mesh 函数为数据点绘制网格线,图形中的每一个已知点和其附近的点用直线连接。

surf
函数和mesh 的用法类似,但它可以画出着色表面图,图形中的每一个已知点与其相邻点以平面连接。

在曲面绘图中,常用的函数是meshgrid 函数,其一般引用格式是:
[X, Y]=meshgrid (x, y)
其中x 和y 是向量,通过meshgrid 函数就可将x 和y 指定的区域转换成为矩阵X 和Y。

这样我们在绘图时就可以先用meshgrid 函数产生在x-y 平面上的二维的网格数据,再以一组z 轴的数据对应到这个二维的网格,即可画出三维的曲面。

例2、绘制由方程形成的立体图。

>> clear
>> [x,y]=meshgrid([-2:0.1:2])
>> z=x.*exp(-x.^2-y.^2)
>> subplot(232)
>> plot3(x,y,z) %多条曲线
>> box off
>>subplot(2,3,3)
>>meshz(x,y,z) %网状图
>>subplot(2,3,4)
>>surf(x,y,z) %表面图
>>subplot(2,3,5)
>>contour(x,y,z) %等高线图
(三)隐函数作图
如果给定了函数的显式表达式,可以先设置自变量向量,然后根据表达式计算函数向量,从而用plot等函数绘制出图形。

但是当函数采用隐函数形式时,则很难利用上述方法绘制图形。

Matlab提供了一个ezplot函数绘制隐函数图形。

例1、对下列隐函数进行绘图:
x^2+y^2-9=0;x^3+y^3-5*x*y+1/5=0;
x=8*cos(t),y=4*sqrt(2)*sin(t),区间为[0,2*pi]
程序如下:
subplot(2,2,1);
ezplot('x^2+y^2-9');
axis equal;
subplot(2,2,2);
ezplot('x^3+y^3-5*x*y+1/5')
subplot(2,2,3);
ezplot('8*cos(t)','4*sqrt(2)*sin(t)',[0,2*pi]);。

相关主题