Matlab基础知识点 - 图文(3)

2019-08-26 17:23

MatLab讲义 2002年9月版

No.n窗口已存在,则成为当前窗口。

h=figure(n)可得到图形窗口的句柄。 两个查阅图形参数和参数值的命令:

get(n):get(n)将返回关于图形窗口 Figure No.n 的所有图像参数的名称和当前值。

set(n):set(n)将返回关于图形窗口 Figure No.n 的所有图像参数的名称和其可能取的值。

3.2 创建二维图形(Plot函数)

Plot是最简单而且使用最广泛的一个线型绘图函数,是Matlab的内部函数。 作用:可以生成线段、曲线和参数方程曲线图形。 几种基本命令形式: (1)向量式:plot(v)

参数v可以是向量、实数阵和复数阵。v是长度为n的数值向量,生成(i,v(i))的一条折线,坐标轴的范围由MATLAB系统根据向量的长度元素的大小自动生成,当向量的元素充分多时,即可以得到一条外观光滑的曲线。

例:x=0:pi/20:2*pi;plot(x) 例:x=peaks;plot(x) (2)参数式:plot(x,y)

x,y都是长度为n的向量,它的作用是在坐标系中生成顺序连接顶点{x(i),y(i)}的折线,绘得的连线图以x为横坐标,y为纵坐标。这种调用可以用来生成参数方程的图形。

例:y=sin(x);plot(x,y) 例:x1=0:1:10*pi; x2=0:0.01:10*pi; y1=sin(x1).*x1; y2=sin(x2).*x2; plot(x1,y1) hold on plot(x2,y2)

(3)矩阵式:plot(y)

y是一个(m*n)和矩阵,为矩阵的每一列画出一条线。同时以矩阵的行向量为基准对x轴进行分度和标注,标准时,采用向量1:m,这里m中矩阵的行数。

例:z=peaks; %%产生一个49*49的矩阵 plot(z)

(4)混合式:plot(x,y)

如果X,Y均为向量,则长度必须相等,亦即参数式;如果X是向量,而Y是一个矩阵,X的长度与矩阵Y的行数或列数相等,则它的作用是将向量X与矩阵Y的每列或每行的向量相对应作折(曲)线,当Y是方阵时,则将向量X与矩阵Y的列向量相对应作图;如果X是矩阵,Y是向量,Y的长度等于X的行数或列数,则将X的每列或每行的向量与Y相对应作图。同样,当X是方阵时,则将X的各列与Y相对应作图;如果X和Y都是矩阵,且维数相同,那么按列与列的对应方式来作图。

例:y=1:length(peaks);plot(peaks,y) (5)复向量式:plot(z)

z为复向量 ,会忽略向量的虚部,相当于plot(real(z),imag(z)) 例:随机矩阵特征值分布plot(eig(real(20,20),?o?,?Markersize?,6) (6)综合调用:plot(x1,y1,x2,y2,...)

矩阵中有多个矩阵调用对,其中的每一对按前四种方式之一进行调用,不同的矩阵对之间,其维数可以不同。

例:t=0:pi/10:2*pi;

11

MatLab讲义 2002年9月版

y1=sin(t); plot(t,y1);

可以使用plot同时显示由若干个x-y对表示的图形: y2=sin(t-0.5); y3=sin(t-0.25);

plot(t,y1,t,y2,t,y3);

从图上我们可以看出,为了体现不同x-y对表示的图形,Matlab自动地使用了不同的颜色;此外我们还可以使用如下格式来设置图形的性态。

3.3 线型、顶点标记和颜色

在调用plot函数时MATLAB自动安排作图的线型的线段的颜色,包括线段顶点的标记。事实上,MATLAB 的plot函数可以设置和管理曲线的线段类型、顶点标记和颜色(在MATLAB中,它们通称为线型Line Style)。

MATLAB定义的线段类型、顶点标记和线段颜色如下表: 颜色(color) 线型顶点标记(style) 顶点标记(marker) 类型 符号 类型 符号 类型 符号 黄色 y 实线 - 实点标记 . 洋红色 m 点线 : 圆圈标记 O 蛋青色 c 点虚线 -. 乘号标记X X 红色 r 虚线 -- 加号标记+ + 绿色 g 星号标记* * 蓝色 b 方块标记□ s 白色 w 钻石形标记? d 黑色 k 向下的三角形标记 V 向上的三角形标记 ^ 向左的三角形标记 < 向右的三角形标记 > 五角星标记☆ p 六边形标记 h 注:1.连接节点的线型如果空缺则表示点与点之间没有直线相连; 2.如果不指定作图的颜色,自动循环使用y,m,c,r,g,b,w 7种颜色画线 plot的最典型的调用方式是三元组参数: plot(x,y,?color-style-marker?)

例:plot(t,y,'b+', t, y2,'k-X', t,y3,'r--*')

例: [x,y,z]=peaks; //多输出函数,函数可产生多个输出值,输出值之间用逗号分开。

contour(x,y,z,20,?k?) hold on

pcolor(x,y,z) shading interp

其中:peaks:根据Gauss分布(正态分布)得到3个49阶矩阵 contour:用相同的颜色画20条等高线, pcolor:将(x,y)点上的颜色设置成z shading interp:设置渲染方式, 例:x=0:0.25:5; y1=x.^0.1; y2=x.^0.5; y3=x.^0.8; y4=x; y5=x.^1.5; y6=x.^2; y7=cos(x); y8=sin(x); hold on

plot(x,y1,?yo?,x,y2,?mx?,x,y3,?c+?,x,y4,?rs?); plot(x,y5,?gh?,x,y6,?bd?,x,y7,?w

12

MatLab讲义 2002年9月版

3.4 subplot 函数

在一个已存在图形的绘图窗口中增加一个图形(在这之前讲的都是覆盖方式)hold on,加到图形上,hold off则取代当前窗口。

允许在同一绘图窗口中显示或在同一纸上打印多个图形。

subplot(m,n,p):将一个绘图窗口分割成m*n个子窗口,每一小块有自己的坐标轴,p为活动窗口,并且在p个窗口绘制当前图形,如果坐标系已存在,则subplot(p)设置当前坐标系。 例如:

t=0:pi/10:2*pi;

[x,y,z]=cylinder(4*cos(t));

%% (生成一个单位圆柱体,采用[0,1]之间的等距节点,每一个节点的旋转半径是4*cos(t), 相当于4*cos(t)母线CYLINDER(R,N), CYLINDER(R)(此时, n=20))

subplot(2,2,1); mesh(x) %%(x=1:m, y=1:n, z=x, c=x) subplot(2,2,2); mesh(y); subplot(2,2,3); mesh(z); subplot(2,2,4); mesh(x,y,z)

subplot(111)是个特殊的情况,与subplot(1,1,1)不同,它使下一条绘图指令在窗口中执行elf和reset指令(即删除当前图形的所有子对象),然后在默认位置创建一个坐标系。

绘制复数图形:plot(z) ? plot(real(z), imag(z)) 例如:

t=0:pi/10:2*pi; plot(exp(i*t),'-o')

3.5 坐标轴控制 axis函数

axis函数可控制坐标轴的刻度,使两个图形在对比时,有相同的比例因子。也可用于复杂图形的局部透视。

axis命令的格式:

axis([xmin xmax ymin ymax]) 设置X,Y轴的极限范围 axis square: 保持X,Y轴 axis equal: 设置X,Y轴等长

axis auto: 设置X,Y轴为自动格式 axis on 显示X,Y轴 axis off 关闭X,Y轴 grid off 图形网格不显示 grid on 图形网格显示

例:复杂函数的局部透视,利用axis函数调整x轴刻度,可以比较清楚地看到某一局部区域。

x=0:1/3000:1;y=cos(tan(pi*x));

figure(1),subplot(2,1,1),plot(x,y) title('复杂函数')

subplot(2,1,2),plot(x,y) axis([0.4 0.6 -1 1]);

title('复杂函数的局部透视')

例:利用axis square使输出图形的保持x,y轴,这样在图形窗口中绘制圆或椭圆都可用圆来表示。

t=0:pi/20:2*pi;

figure(1),subplot(2,2,1),plot(sin(t),cos(t)) title('圆形轨迹')

subplot(2,2,2),plot(sin(t),2*cos(t)),title('椭圆形轨迹') subplot(2,2,3),plot(sin(t),cos(t)),axis square title('调节后的圆形轨迹')

subplot(2,2,4),plot(sin(t),2*cos(t)),axis square title('调节后的椭圆形轨迹')

坐标标题及图中的文本使用函数:xlabel、ylabel、zlabel、text、title。

13

MatLab讲义 2002年9月版

说明:

(1)xlabel、ylabel、zlabel为x,y,z轴的标记。 (2)text在当前坐标系中建立文本对象。 格式:text(x,y,?string?)

在图形的(x,y)点上放置指定的字符串。

text(...,?PropertyName?,?PropertyValue?,...)为标题文本指定特性。 特征为:∧表示为上标、_为表示下标、

\\leftarrow表示为← \\rightarrow表示为→ \\it{斜体文字} arrow表示箭头

bottom表示上下箭头。

text(x,y,z,?string?) 在三维图形上放置文字

text(x,y,?string?,?color?,?k?) 放置文字的同时设置颜色。 例:

t=-pi:pi/100:pi; y=sin(t); plot(t,y)

axis([-pi pi -1 1])

xlabel('-\\pi \\leq \\itt \\leq \\pi') ylabel('sin(t)')

title('Graph of the sine function')

text(1,-1/3,'\\it{Note the odd symmetry,}','color','r') (3)gtext与text的不同是可利用鼠标放置文本。 例:

t=-pi:pi/20:pi;

y1=sin(t);y2=2*cos(t); plotyy(t,y1,t,y2),grid on title('双Y轴正弦曲线') gtext('sin(t)')

text(pi/2,0,'\\leftarrow 2cos(t)')

(4)plotyy:双Y轴的图形,同一张图上表示两条曲线时,可拥有各自的Y轴。 (5)title给当前坐标系加上标题。

例:在同一张图上绘制出双y轴的y1=sin(x)和y2=2cos(x)函数。

x=-pi:pi/20:pi;

y1=sin(x);y2=2*cos(x); plotyy(x,y1,x,y2); grid on

title('双y轴正余弦曲线') text(0,0,'\\leftarrow sin(t)') text(pi/2,0,'\\leftarrow 2cos(t)')

3.6 专门用于绘制一元函数曲线的命令fplot

在plot命令中,系统是将从外部输入或间接确认的数值矩阵转化为连线图的。而在实际应用中绘制函数的二维曲线时,一般并不清楚函数的具体情况,因而在确定自变量x的取值间隔时,往往一律用平均间隔,这样往往不大准确。取好了,可以表现出函数图像的大概情况,取差了,则会因某处x元素的间隔太大而根本错绘了曲线,不能反映出函数的变化情况从而使绘图失败。

fplot不是直接从外部接收数据,而是通过其内部自适应算法而产生的。即在函数值变化比较平稳处,它所取的数值点就会自动相对稀疏一些,在函数值变化剧烈处,所取有数值点就会自动密集一些。所以对于曲线起伏剧烈的函数,用fplot命令将比用一般等间距取点的plot命令绘得的曲线光滑准确一些。

fplot命令的具体使用格式为:

fplot(?function_name?,limits,tol,?linespec?,p1,p2,...)

14

MatLab讲义 2002年9月版

[x,y]=fplot(?function_name?,limits,tol,?linespec?,p1,p2,...) 其中:?function_name?:待绘制函数曲线的函数名称

limits :limits=[xmin,xmax],为x的取值空间

tol :为fplot命令在进行运算中的相对误差。tol越小,所绘得的曲线就越接近实际曲线的情况,但系统要为此占用很大的资源。

linepsec : 线型设置

p1,p2... : 函数传递的参数 x,y :输出数据点坐标 例:fplot与plot命令的比较。 function y=funfplot(x)

y=sin(1./tan(pi.*x));%%建立一个函数funfplot

[X,Y]=fplot(?funfplot?,[-0.1,0.1],2e-4); n=size(X);

x=-0.1:0.2/(n(1)+1):0.1; y=funfplot(x); plot(x,y),hold on plot(X,Y)

3.7 专门用于绘制一元符号函数曲线的命令ezplot

如果符号函数中只含有一个变量,那么Matlab将其视为一个普通函数,画出其在某个区域内的图像用ezplot命令。

格式:ezplot(sym_function,limits)

其中:sym_function 符号函数或代表它的符号变量。

limits limits=[x1,x2],为x的取值空间。其默认值为[-2pi,2pi]

ezplot(f) %%f=f(x) -2π<

ezplot(f,[xmin,xmax,ymin,ymax]) %%xmin

ezplot(x,y,[tmin,tmax]) ezplot(...,figure) 例:

1.ezplot(?x^2-y^4?)

2.ezplot(?(x^2)^(sin(x)^2)?)

3.8 二维特殊图形

MATLAB 5.3提供了很多绘制二维图形的指令,如下图: 函数名称 功能 area 填充的函数折(曲)线图 bar 直方图 barh 垂直的直方图 bar3 三维直方图 bar3h 垂直的三维直方图 comet 慧星轨迹状的图形 errorbar 误差棒图 feather 沿X轴分布的复数向量图 fill 平面多边形填色 hist 向量的统计直方图 pareto 带有标准的直方图 pie 饼图 pie3 三维饼图 15


Matlab基础知识点 - 图文(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:知识产权专业大学毕业实习周记原创范文

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

马上注册会员

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