MATLAB有很强的图形功能,可以方便地实现数据的视觉化。强大的计算功能与图形功能相结合为MATLAB在科学技术和教学方面的应用提供了更加广阔的天地。下面着重介绍二维图形的画法,对三维图形只作简单叙述。

 

5.1 二维图形的绘制

5.1.1 基本形式

二维图形的绘制是MATLAB语言图形处理的基础,MATLAB最常用的画二维图形的命令是plot,看两个简单的例子:

>> y=[0 0.58 0.70 0.95 0.83 0.25];

>> plot(y)

生成的图形见图5-1,是以序号收集:matlab中plot用法为横坐标、数组y的数值为纵坐标画出的折线。

>> x=linspace(0,2*pi,30); % 生成一组线性等距的数值

>> y=sin(x);

>> plot(x,y)

生成的图形见图5-2,是收集:matlab中plot用法30个点连成的光滑的正弦曲线。

收集:matlab中plot用法收集:matlab中plot用法

 

                             图5-2

5.1.2 多重线

在同一个画面上可以画许多条曲线,只需多给出几个数组,例如

>> x=0:pi/15:2*pi;

>> y1=sin(x)

>> y2=cos(x)

>> plot(x,y1,x,y2)

则可以画出图5-3。多重线的另一种画法是利用hold命令。在已经画好的图形上,若设置hold onMATLA将把新的plot命令产生的图形画在原来的图形上。而命令hold off 将结束这个过程。例如:

>> x=linspace(0,2*pi,30); y=sin(x); plot(x,y)

先画好图5-2,然后用下述命令增加cos(x)的图形,也可得到图5-3

>> hold on

>> z=cos(x); plot(x,z)

>> hold off

收集:matlab中plot用法收集:matlab中plot用法

5-4

5.1.3 线型和颜色

MATLAB对曲线的线型和颜色有许多选择,标注的方法是在每一对数组后加一个字符串参数,说明如下:

线型 线方式  实线 :点线 . 虚点线 – – 波折线。

线型 点方式 . 圆点 +加号 * 星号 x x o 小圆

颜色: y黄; r红; g绿; b蓝; w白; k黑; m紫; c.

以下面的例子说明用法:

>> x=0:pi/15:2*pi;

>> y1=sin(x); y2=cos(x);

>> plot(x,y1,’b:+’,x,y2,’g-.*’)

可得图形5-4

5.1.4 网格和标记

在一个图形上可以加网格、标题、x轴标记、y轴标记,用下列命令完成这些工作。

>> x=linspace(0,2*pi,30); y=sin(x); z=cos(x);

>> plot(x,y,x,z)

>> grid

>> xlabel(‘Independent Variable X’)

>> ylabel(‘Dependent Variables Y and Z’)

>> title(‘Sine and Cosine Curves’)

它们产生图5-5

收集:matlab中plot用法

                                           图5-5

也可以在图形的任何位置加上一个字符串,如用:

>> text(2.5,0.7,’sinx’)

表示在坐标x=2.5, y=0.7处加上字符串sinx。更方便的是用鼠标来确定字符串的位置,方法是输入命令:

>> gtext(‘sinx’)

在图形窗口十字线的交点是字符串的位置,用鼠标点一下就可以将字符串放在那里。

 

5.1.5 坐标系的控制

在缺省情况下MATLAB自动选择图形的横、纵坐标的比例,如果你对这个比例不满意,可以用axis命令控制,常用的有:

axis([xmin xmax ymin ymax]) [ ]中分别给出x轴和y轴的最大值、最小值

axis equal  axis(‘equal’) x轴和y轴的单位长度相同

axis square  axis(‘square’) 图框呈方形

axis off  axis(‘off’) 清除坐标刻度

还有axis auto axis image axis xy axis ij axis normal axis on axis(axis)

用法可参考在线帮助系统。

5.1.6 多幅图形

可以在同一个画面上建立几个坐标系, subplot(m,n,p)命令;把一个画面分成m×n个图形区域, p代表当前的区域号,在每个区域中分别画一个图,

>> x=linspace(0,2*pi,30); y=sin(x); z=cos(x);

>> u=2*sin(x).*cos(x); v=sin(x)./cos(x);

>> subplot(2,2,1),plot(x,y),axis([0 2*pi –1 1]),title(‘sin(x)’)

>> subplot(2,2,2),plot(x,z),axis([0 2*pi –1 1]),title(‘cos(x)’)

>> subplot(2,2,3),plot(x,u),axis([0 2*pi –1 1]),title(‘2sin(x)cos(x)’)

>> subplot(2,2,4),plot(x,v),axis([0 2*pi –20 20]),title(‘sin(x)/cos(x)’)

共得到4幅图形,见图5-6.

5-6

5.2 三维图形

限于篇幅这里只对几种常用的命令通过例子作简单介绍.

5.2.1 带网格的曲面

例 作曲面z=f(x,y)的图形

收集:matlab中plot用法

用以下程序实现:

>> x=-7.5:0.5;7.5;

>> y=x;

>> [X,Y]=meshgrid(x,y); (3维图形的X,Y数组)

>> R=sqrt(X.^2+Y.^2)+eps; (eps是防止出现0/0)

>> Z=sin(R)./R;

>> mesh(X,Y,Z) (3维网格表面)

画出的图形如图5-7. mesh命令也可以改为surf, 只是图形效果有所不同,读者可以上机查看结果。

收集:matlab中plot用法

 5-8

5.2.2 空间曲线

例 作螺旋线 x=sint, y=cost, z=t

用以下程序实现:

>> t=0:pi/50:10*pi;

>> plot3(sin(t),cos(t),t) (空间曲线作图函数, 用法类似于plot)

画出的图形如图5-8

5.2.3 等高线

contour  contour3 画曲面的等高线,如对图5-7的曲面, 在上面的程序后接

contour(X,Y,Z,10) 即可得到10条等高线。

5.2.4 其它

较有用的是给三维图形指定观察点的命令view(azi,ele)azi 是方位角, ele 是仰角.

缺省时 azi=收集:matlab中plot用法ele=收集:matlab中plot用法.

 

5.3 图形的输出

在数学建模中,往往需要将产生的图形输出到Word文档中。通常可采用下述方法:

首先,在MATLAB图形窗口中选择【File】菜单中的【Export】选项,将打开图形输出对话框,在该对话框中可以把图形以emfbmpjpgpgm等格式保存。然后,再打开相应的文档,并在该文档中选择【插入】菜单中的【图片】选项插入相应的图片即可。

版权声明:本文为feitian629原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/feitian629/archive/2013/06/04/3117751.html