Matlab仿真技术

乔世坤

目录

  • 1 实验一Matlab基础与入门
    • 1.1 Matlab简介
    • 1.2 变量与数值
    • 1.3 矩阵运算
    • 1.4 数组运算
    • 1.5 常用数学函数
    • 1.6 Matlab帮助系统
    • 1.7 实验内容
    • 1.8 思考题
  • 2 实验二 Matlab程序设计基础
    • 2.1 M文件
    • 2.2 Matlab程序流控制
    • 2.3 实验内容
    • 2.4 思考题
  • 3 实验三Matlab图形绘制
    • 3.1 二维曲线的绘制
    • 3.2 三维曲线的绘制
    • 3.3 实验内容
    • 3.4 思考题
  • 4 MATLAB数值计算与符号运算
    • 4.1 线性代数中的应用
    • 4.2 多项式运算
    • 4.3 数据分析与统计
    • 4.4 功能函数
    • 4.5 常微分方程的数值求值
    • 4.6 符号运算
    • 4.7 Matlab数值计算部分实验题
    • 4.8 Matlab符号运算部分实验题
    • 4.9 Matlab程序设计部分实验题
    • 4.10 思考题
  • 5 Simulink仿真基础
    • 5.1 Simulink概述
    • 5.2 Simulink建模与仿真
    • 5.3 子系统及其封装技术
    • 5.4 SIMULINK模块库简介
    • 5.5 Simulink仿真基础实验题
    • 5.6 Simulink仿真应用实验题
    • 5.7 思考题
  • 6 Matlab在电路分析中的应用
    • 6.1 Matlab在电路中的仿真应用
    • 6.2 数字逻辑电路仿真
    • 6.3 实验内容
    • 6.4 思考题
  • 7 MATLAB在信号与系统中的应用
    • 7.1 连续时间信号及其表示
    • 7.2 线性时不变系统
    • 7.3 线性时不变系统的时域分析
    • 7.4 线性时不变系统的频域分析
    • 7.5 实验内容
    • 7.6 思考题
  • 8 Matlab在数字信号处理中的应用
    • 8.1 信号的表示与信号的基本运算
    • 8.2 实验内容
    • 8.3 思考题
  • 9 MATLAB在通信原理中的应用
    • 9.1 脉冲编码调制仿真
    • 9.2 实验内容
二维曲线的绘制
  • 1 文档
  • 2 视频
  • 3 PPT

3.1 二维曲线的绘制

3.1.1二维基本绘图命令

plotMatlab二维绘图中最简单、最重要、使用最广泛的线性绘图函数。其格式如下

plot(y)

plot(x,y)

plot(x,y,'参数')

plot(x1,y1, '参数1',x2,y2,'参数2',…)

说明:xy分别是横坐标、纵坐标向量,xy长度相同。参数只有y时,作图时横坐标是以1开始的自然数,与y等长。参数选项是一个字符串,决定二维图形的颜色、线型及数据点的图标。plot可以在同一坐标系中画多幅图形,x1y1确定第一条曲线的坐标值,参数1为第一条曲线的选项参数;x2y2为第二条曲线的坐标值,参数2为第二条曲线的选项参数;以此类推。

Matlab二维绘图常用的线段颜色、类型和数据点图标参数见表3-1plot函数中的参数可以是表3-1所示三种类型之一,也可以是线段类型、数据点标识与颜色的组合,例如参数':bx'表示绘制蓝颜色,数据点为“×”并用虚线连接的输出曲线。没有参数时缺省规定一律用“实线”线型,按七种颜色次序进行着色。

3-1 二维绘图常用的线段颜色、类型和数据点图标

                                                                                                                                                                       

 

线段颜色参数

 
 

含义

 
 

线段类型

 
 

含义

 
 

数据点标记参数

 
 

含义

 
 

b

 
 

蓝色

 
 

-

 
 

实线

 
 

.

 
 

实点标记

 
 

g

 
 

绿色

 
 

 
 

点线

 
 

o

 
 

圆圈标记

 
 

r

 
 

红色

 
 

-.

 
 

点划线

 
 

x

 
 

叉号型标记

 
 

c

 
 

青色

 
 

--

 
 

虚线

 
 

+

 
 

十字型标记

 
 

m

 
 

洋红

 


 

*

 
 

星号

 
 

y

 
 

黄色

 


 

s

 
 

方形

 
 

k

 
 

黑色

 


 

d

 
 

钻石

 
 

w

 
 

白色

 


 

^

 
 

向上三角形标记

 




 

v

 
 

向下三角形标记

 




 

 
 

向左三角形标记

 




 

 
 

向右三角形标记

 




 

p

 
 

五角星标记

 




 

h

 
 

六角星标记

 

 

[3-1] 绘制)的二维图形。

>> t=-2*pi:0.05*pi:2*pi;

>> y=sin(t);

>> plot(t,y);

输出图形如图3-1所示plot(t,y)plot(y)所做图形的区别只是横坐标值不同。当输入如下语句,输出波形如图3-2所示。

>> plot(t,y,':r<');


3-1应用plot(t,y)绘制正弦信号波形     3-2应用plot(t,y,'参数')绘制正弦信号波形

3.1.2图形修饰

1.坐标轴比例控制

axis函数实现对当前二维图形对象的x轴和y轴进行设置,其格式如下:

axis([xmin xmax ymin ymax])

说明:将图形的x轴范围限定在[xmin xmax]之间,y轴的范围限定在[ymin ymax ]之间。Matlab绘制图形时,按照给定的数据值确定坐标轴参数范围。

2.添加图形的标题

title命令可以实现为当前图形顶部添加标题,其格式如下:

title('字符串')

3. 添加坐标轴标志

xlabelylabel函数分别用于添加当前图形的x轴、y轴标注。格式如下:

xlabel('字符串')

ylabel('字符串')

说明:三维图形可以应用zlabel函数添加z轴标注。

4. 文本注释

text函数在二维坐标(x,y)处标注说明文字。格式如下

text(x,y,'字符串')

5.图例注解

在当前图形中添加图例,可采用legend实现,其格式如下:

legend (字符串1,字符串2,…,参数)

说明:此函数在图中开启一个注解视窗,依据绘图的先后顺序,依次输出字符串对各个图形进行注解说明,参数用来确定注解视窗在图形中的位置。

6.标注中特殊符号的输入或标注文本显示控制

在标注过程中经常会遇到输入特殊符号的问题,如输入παΔ等,Matlab提供了相应的字符转换。如“\pi”将显示输出π,“\alpha”将显示输出α,“\beta”将显示输出,“\psi”将显示输出,“\omega”将显示输出,“\Omega”将显示输出

可以对标注文本进行显示控制,包括:\bf:表示黑体字;\it:表示斜体字;\rm:表示标准形式字体;fontname{fontname}:定义标注文字的字体;fontsize{fontsize}:定义标注文字的字号。

例如:为上例图形添加修饰。

>> axis([-7 7 -1.1 1.1]);

>> title('正弦曲线图形');

>> xlabel('x(0-2\pi)');

>> ylabel('y');

>> text(0,0,'原点','Fontsize',16);

>> legend('\it正弦');

输出图形结果如图3-3所示。

3-3添加图形修饰的正弦曲线

3.1.3图形控制

1. 图形保持/解除

保持/解除当前图形窗口中内容的命令如下:

hold on/off

2.网格控制

在所绘的图形中添加/去掉网格线命令如下:

grid on/ off

3.图形窗口的分割

subplot用于分割图形显示窗口,其格式如下:

subplot(m,n,p)

subplot('position',[leftbottom width height])

说明:将当前窗口分割成m×n个小区域,并指定第p个区域为当前的绘图区域。区域的编号原则是“先上后下,先左后右”,最后一种格式指定作图位置。

4.指定图形窗口

绘图是在默认的figure No.1窗口中绘制,再次绘图后,前次图形将被覆盖,当需要多个图形窗口时,应用figure语句实现。它能产生或指定图形窗口绘图。其格式为:

figure(n)

5.交互式图形命令

从图形上获取数据,可应用ginput命令实现。格式如下

 [x,y]=ginput(n)

说明:参数n是正整数,是通过鼠标从图上获得数据点的个数。xy存储数据点坐标值。当ginput命令运行后,鼠标光标变成十字交叉形式,移动到待取坐标点,单击鼠标左键即可获得该点坐标,如次重复,直至取n个点。

gtext命令用于实现鼠标在特定处标注说明文字,其格式如下:

gtext ('字符串')

6.图形的填充

fill用于实现图形的填充。格式如下:

fill(x,y,'颜色参数')

说明:在由数据所构成的多边形内,用所指定的颜色填充。如果该多边形不是封闭的,则用初始点和终点的连线将其封闭。

[3-2]分割窗口输出图形。

clf;clear;

t=-2*pi:0.05*pi:2*pi;

y1=sin(t);

y2=cos(t);

y3=sin(10*t).*sin(t);

subplot(2,2,1),plot(t,y1,'r');hold on ;plot(t,y2);

subplot(2,2,2),plot(t,y2,'b<');grid on;

subplot('position',[0.2,0.05,0.6,0.45]),plot(t,y3);

输出结果如图3-4所示。

3-4图形窗口的分割例图

3.1.4特殊二维图形绘图

1. 绘制火柴杆图

离散序列数据绘图一般使用函数stem,其基本格式为:

stem(x,y)

stem(x,y,'filled')

说明:以向量x的各个元素为x坐标,以y向量的各个对应元素为y坐标,在(x,y)坐标点画一个空心小圆圈,并连接一条线段到x坐标轴,'filled'表示画实心的小圆圈。

2. 双纵坐标绘图命令

    当需要绘制横坐标同一比例尺,纵坐标比例尺不同时,应用plotyy实现。格式如下

plotyy(x1,y1,x2,y2)

plotyy(x1,y1,x2,y2,'function1','function2')

说明:字符串function指定绘图函数生成图形,绘图函数可以是plotsemilogxsemilogyloglog等,默认为plot

3. 极坐标图形

    极坐标绘图应用polar函数实现,其常用格式如下:

polar(theta,radius)

说明:theta为极角,极角为弧度制,radius为极坐标矢径。

4. 对数坐标图形

Matlab提供的对数、半对数坐标绘图函数;其常用格式如下:

semilogx(x,y)

semilogy(x,y)

loglog(x,y)

说明:semilogx绘制半对数坐标图形,其中横轴取以10为底的对数坐标,纵轴为线性坐标。semilogy其纵轴取以10为底的对数坐标,横轴为线性坐标。loglog绘制坐标轴都取以10为底的对数坐标图形。三个函数对xy的要求与plot函数相同。

[3-3] 应用特殊二维图形命令绘图。

clear;

t1=0:0.1:2;

y1=exp(t1);

t2=0:0.01:20;

y21=200*exp(-0.05*t2).*sin(t2);

y22=0.8*exp(-0.5*t2).*sin(10*t2);

theta = 0:0.01:2*pi;

rho = sin(2*theta).*cos(2*theta);

t4=0:0.01:10;

y4=10.*exp(t4);

subplot(2,2,1),stem(t1,y1);

subplot(2,2,2),plotyy(t2,y21,t2,y22);

subplot(2,2,3),polar(theta,rho);

subplot(2,2,4),loglog(t4,y4);grid on

输出结果如图3-5所示。

3-5应用特殊二维图形命令绘图

5. 饼图

饼图用来表示各元素占总和的百分比,绘饼图函数(pie基本格式为:

pie(x)

pie(x,explode)

说明:饼图若x为向量,绘制x的每一元素占全部向量元素总和的百分比图形;若x为矩阵,绘制x的每一元素占全部矩阵元素总和的百分比的图形。参数explode是与x同长度的向量,用来决定是否从饼图中分离对应的一部分块,若为零,表示不分离;非零,则分离出来。

[3-4] 用饼图表示学生成绩分布。

chengji=[15 30 40 10 5];

explode=[1 0 0 0 0];

pie(chengji,explode);

legend('优秀','良好','中等','及格','不及格');

输出结果如图3-6所示。

3-6饼图

6. 条形图

条形图常用于对统计的数据进行作图。绘条形图函数(bar)其基本格式如下:

bar(x,y)

bar(x,y,width)

说明:x是横坐标向量,省略时默认为是1:mmy的向量长度;y是纵坐标,可以是向量或矩阵,当y是向量时,每一元素对应一个竖条,当y是矩阵时,将画出一组竖条。width是竖条宽度,默认0.8,如大于1,则条与条之间将重叠。另外bar3可以完成三维图形绘制。

例如用条形图显示上题学生成绩分布。输出结果如图3-7所示。

chengji=[15 30 40 10 5];

bar(chengji,0.6);

3-7条形图

7. 直方图

直方图与条形图的形状相似,但直方图显示数据的分布规律,并具有统计功能。绘直方图函数hist基本格式如下:

hist(y,m)

[counts,centers]= hist(y,m)

说明m是分段的个数默认等距分10输出图形的每个条形线高度是落入每段内元素的计数值。y可是向量或矩阵,如果是矩阵则按列分段。counts是各段上的频率计数值,centers x轴上间隔位置向量。例如:

x = randn(1000,3);

hist(x);

[c,d]=hist(x)

输出图形如图3-8所示。


3-8直方图