matlab(3)

2019-03-16 21:56

x=0:pi/10:2*pi; y=sin(x);

plot(x,y,x,y*2,x,y*3)

y?sintsin(9t)及其包络线。 【例3.1】绘制曲线

程序如下: t=(0:pi/100:pi)'; y1=sin(t)*[1,-1]; plot(t,[y1,y2]') grid on; box on;

(2).具有两个纵坐标标度的图形

绘制出具有不同纵坐标标度的两个图形,可以使用plotyy绘图函数。这种图形有利于图形数据的对比分析。

plotyy(x1,y1,x2,y2)

其中,x1和y1对应一条曲线,x2和y2对应另一条曲线。横坐标的标度相同,纵坐标有两个,左纵坐标用于x1、y1数据对,右纵坐标用于x2、y2数据对。

axis equal

%加网格线 %加坐标边框 %坐标轴采用等刻度

%包络线函数值

y2=sin(t).*sin(9*t);

3.2 二维统计分析图的绘制

(1)条形图。

MATLAB中提供了多个函数可绘制各种条形图,bar函数绘制柱形图,barh函数绘制水平条形图,stem函数绘制杆图,errorbar函数绘制误差条图。下面以bar函数为例,说明条形图函数的用法。bar函数的基本用法与plot函数相似,其调用格式为

bar(x,width,style):

当x是m × n阶的矩阵时,绘制的条形图以分组或堆积的形式表现。矩阵中每一行元素绘制在一组中,每一列元素绘制在每组中相对应的位置上。其中,width设置条形的相对宽度和控制在一组内条形的间距,默认值为0.8,style指定条形的排列模式,类型有'group'(分组)和 'stack'(堆积),默认时采用'group'模式。

(2)饼图。

饼图能反映每一数值相对于总数值的大小。MATLAB中绘制饼图的函数是pie,其调用格式为

6

pie(x,explode)

pie函数使用x中的数据绘制一个饼图,x可以是向量或矩阵。explode是与x同等大小的向量或矩阵,与explode的非零值对应的部分将从饼图中心分离出来。默认explode时,饼图是一个整体。

【例3.2】表3.1所示为某公司3类产品个季度的销售额(万元),分别按季度绘制簇状形图和堆积条形图。用饼图分析例3.10中产品A该年度各季度的产品销售情况。

表3.1 产品全年销售额(单位:万元)

x=[51,82,34,47;67,78,68,90;78,85,65,50]'; subplot(1,2,1); bar(x,'group');

title('Group');axis([0 5 0 100]); subplot(1,2,2); barh(x,'stack'); title('Stack');

pie(x(:,1),[0 0 0 1]) title('饼图');

legend('一季度','二季度','三季度','四季度');

7

(3)散点图。

散点图是数据点在直角坐标系平面上的分布图。MATLAB中绘制散点图的函数是scatter,其调用格式为

scatter(x,y,s,c,'filled')

其中,x、y、s和c为同等大小的向量。x和y用于定位数据点;s指定绘图点的大小,s也可以是一个标量,则所有数据点同等大小;c指定绘图所使用的色彩,c也可以是一个标量,所有数据点使用同一种颜色;'filled'表示填充绘图点,默认时,数据点是空心的。

3.3 三维图形的绘制

3.3.1 三维曲线

最基本的三维图形函数为plot3,其调用格式为

plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n)

其中,每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot函数相同。当x、y、z是同维向量时,则x、y、z对应元素构成一条三维曲线;当x、y、z是同维矩阵时,则以x、y、z对应列元素绘制三维曲线,曲线条数等于矩阵列数。

【例3.3】绘制三维曲线。 程序如下: t=0:pi/10:10*pi; x=sin(t)+t.*cos(t); y=cos(t)-t.*sin(t); z=t;

plot3(x,y,z);

axis([-30 30 -30 30 0 35]) title('Line in 3-D Space');

xlabel('X');ylabel('Y');zlabel('Z'); grid on;

3.3.2 三维曲面

MATLAB中绘制三维网格图和曲面图,先要生成在x?y平面的网格数据,再以一组z

8

轴的数据对应到这个二维的网格,然后调用绘图函数绘制。

(1).产生三维数据

在MATLAB中产生三维图形数据的方法是:将x方向区间[a,b]分成m份,将y方向区间[c,d]分成n份,由各划分点分别作平行于两坐标轴的直线,将区域[a,b]×[c,d]分成m×n个小矩形,生成代表每一个小矩形顶点坐标的平面网格坐标矩阵,最后求对应网格坐标的Z矩阵。

MATLAB中的meshgrid函数可以将向量转换为矩阵。meshgrid函数的调用格式为 [X,Y]=meshgrid(x,y); 其中x、y为向量。

(2).绘制三维曲面的函数

MATLAB提供了mesh函数和surf函数来绘制三维曲面图。mesh函数用于绘制三维网格图;surf用于绘制三维曲面图,各线条之间的补面用颜色填充。surf函数和mesh函数的调用格式为

mesh(x,y,z,c) surf(x,y,z,c)

一般情况下,x、y、z是维数相同的矩阵。x、y是网格坐标矩阵,z是网格点上的高度矩阵,c用于指定在不同高度下的颜色范围。c默认时,MATLAB认为c = z,即颜色的设定是正比于图形的高度的,这样就可以画出层次分明的三维图形。当x,y是向量时,要求x的长度等于z矩阵的列,y的长度等于z矩阵的行,x、y向量元素的组合构成网格点的x、y坐标,z坐标则取自z矩阵,然后绘制三维曲面图。

【例3.4】绘制三维曲面图z = sinx2 + cosy2,x?[0,?],y?[0,?/2]。 程序如下:

[x,y]=meshgrid(0:pi/100:pi, 0:pi/100:pi/2); z=sin(x.^2)+cos(y.^2); mesh(x,y,z);

axis([0 4 0 1.8 -1.5 1.5]);

9

(3).标准三维曲面

(a)sphere函数。sphere函数用于绘制三维球面,其调用格式为 [x,y,z]=sphere(n)

该函数将产生(n + 1)×(n + 1)矩阵x、y、z,采用这3个矩阵可以绘制出圆心位于原点、半径为1的单位球体。若在调用该函数时不带输出参数,则直接绘制所需球面。n决定了球面的圆滑程度,其默认值为20。若n值取得较小,则将绘制出多面体表面图。

(b)cylinder函数。cylinder函数用于绘制柱面,其调用格式为 [x,y,z]= cylinder(R,n)

其中,R是一个向量,存放柱面各个等间隔高度上的半径;n表示在圆柱圆周上有n个间隔点,默认时表示有20个间隔点。例如,cylinder(3)生成一个圆柱,cylinder([10,1])生成一个圆锥,而

t=0:pi/100:4*pi; R=sin(t); cylinder(R,30) 生成一个正弦型柱面。

(c)peaks函数。peaks函数(多峰函数)常用于三维曲面的演示。该函数可以用来生成绘图数据矩阵,例如:

z = peaks(30);

将生成一个30 × 30的矩阵z,即分别沿x和y方向将区间[?3,3]等分成29份,并计算这些网格点上的函数值。默认参数时将生成一个49 × 49的矩阵。也可以根据网格坐标矩阵x、y重新计算函数值矩阵。例如:

[x,y]=meshgrid(-5:0.1:5); z=peaks(x,y);

生成的数值矩阵可以作为mesh、surf等函数的参数而绘制出多峰函数曲面图。另外,若在调用peaks函数时不带输出参数,则直接绘制出多峰函数曲面图。

10


matlab(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:一年级数学下册找规律、凑十法、数图形综合练习试卷

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: