Matlab实验指导书.docx
- 文档编号:10816106
- 上传时间:2023-05-27
- 格式:DOCX
- 页数:78
- 大小:559.34KB
Matlab实验指导书.docx
《Matlab实验指导书.docx》由会员分享,可在线阅读,更多相关《Matlab实验指导书.docx(78页珍藏版)》请在冰点文库上搜索。
Matlab实验指导书
Matlab实验指导书
目录
实验内容
1.实验一MATLAB基础知识...........................................................................................................1
2.实验二矩阵与数组..................................................................................................................6
3.实验三基本操作指令............................................................................................................12
4.实验四高级操作指令............................................................................................................21
5.实验五绘图功能.....................................................................................................................27
6.实验六GUI设计技术.............................................................................................................31
7.实验七MATLAB应用...............................................................................................................42
8.实验八Simulink仿真...........................................................................................................46
附录参考书目.52
1.实验一MATLAB基础知识
实验目的和要求:
(1)熟练掌握MATLAB的启动和退出。
(2)熟悉MATLAB的命令窗口。
(3)熟悉常用选单和工具栏。
(4)熟悉MATLAB桌面的其他窗口。
(5)使用“帮助”查找帮助信息。
(6)熟悉数据和变量
实验仪器:
计算机一台
实验步骤和内容:
这里介绍MATLAB一些入门知识,包括MATLAB桌面和窗口,MATLAB命令格式、数据格式、数据文件和变量管理.
表一MATLAB的基本命令
主题词
含义
主题词
含义
format
设置数据显示格式
feval
函数求值
who
显示变量名
input
提示输入
whos
显示变量信息
disp
输出
clear
清除内存变量
tic
启动秒表
save
保存工作变量到文件
toc
时间读数(秒)
load
从文件装载变量
help
帮助
linspace
区间等分
lookfor
查找
length
获取数组长度
type
列程序清单
size
矩阵大小
which
查找文件目录
max
最大值
double
双精度
min
最小值
str2num
字符串转化为数值
sum
求和
num2str
数值转化为字符串
find
条件检索
1.1MATLAB桌面
启动MATLAB后,就进入MATLAB的桌面,图1为MATLAB7.0的默认(Default)桌面。
第一行为菜单栏,第二行为工具栏,下面是三个最常用的窗口。
右边最大的是命令窗口(CommandWindow),左上方前台为发行说明书窗口(Launchpad),后台为工作空间(Workspace),左下方为命令历史(CommandHistory)后台为当前目录(CurrentDirectory)。
1.1.1窗口
(1)命令窗口
该窗口是进行MATLAB操作最主要的窗口。
窗口中“>>”为命令输入提示符,其后输入运算命令,按回车键就可执行运算,并显示运算结果.。
图1
(2)发行说明书窗口
发行说明书窗口是MATLAB所特有的,用来说明用户所拥有的Mathworks公司产品的工具包、演示以及帮助信息。
(3)工作空间
在默认桌面,位于左上方窗口前台,列出内存中MATLAB工作空间的所有变量的变量名、尺寸、字节数。
用鼠标选中变量,击右键可以打开、保存、删除、绘图等操作。
(4)当前目录
在默认桌面,位于左下方窗口后台,用鼠标点击可以切换到前台。
该窗口列出当前目录的程序文件(.m)和数据文件(.mat)等。
用鼠标选中文件,击右键可以进行打开、运行、删除等操作。
(5)命令历史(CommandHistory)
该窗口列出在命令窗口执行过的MATLAB命令行的历史记录。
用鼠标选中命令行,击右键可以进行复制、执行(EvaluateSelection)、删除等操作。
除上述窗口外,MATLAB常用窗口还有编程器窗口、图形窗口等。
1.2在线帮助
help显示MATLAB主题目录
help子目录名显示子目录中所有MATLAB系统命令及函数
help命令或函数显示该命令或函数的说明部分
lookfor关键字显示与该关键字有关的命令和函数
typeM文件名显示M文件程序代码
whichM文件名显示指定的MATLAB文件的路径
demo演示MATLAB功能
MATLAB提供了两种形式的帮助系统:
纯文本帮助、HTML帮助。
纯文本帮助是最常用、最经济的在线帮助,不需要另外安装,是边用边学计算机软件的最有效的方法。
>>help%显示MATLAB及其工具箱的主题目录,其中有graph3d
>>helpgraph3d%显示3维图形主题目录内所有M命令和函数,其中有mesh
>>helpmesh%显示M函数mesh的用法说明,即其M文件的注释部分
>>whichmesh%显示M函数mesh所在的目录
>>typemesh%显示函数mesh的M文件程序代码
>>lookforsurface%显示MATLAB搜索路径中凡是第一行注释含surface的M命令和函数,其中有函数mesh
若我们现在要解决一个线性规划问题,但不知道怎么用MATLAB求解,可利用线性规划的关键字programming:
>>lookforprogramming
可以找到有关programming的很多命令,其中有一个LINPROG是线性规划(Linearprogramming).再用:
>>helplinprog
可以得到使用linprog解线性规划问题用法的详细说明。
进一步使用:
>>typelinprog
可以看到linprog的M文件程序代码。
2.文件和目录管理
MATLAB文件有M、Mat、Mex等。
其中M文件是最重要的,MATLAB绝大多数内部命令和函数是M文件,用户自编的程序一般也是M文件。
MATLAB只执行当前目录(CurrentDirectory)和搜索路径(写在文件pathdef.m)中的M文件。
初学者在M文件的保存上经常出现下列几种错误:
(1)文件修改后没有保存;
(2)文件保存的目录不在当前目录和MATLAB搜索路径中;
(3)文件名使用了常数或内存中的变量,如1.m,pi.m等;
(4)文件名用了减号、空格等非法字符,如eg2-1.m,eg2.1.m等;
(5)文件名与MATLAB内建(build-in)函数和其他内部函数冲突,如mesh.m,fitfun.m等。
1.3数据和变量
1.3.1表达式
在命令窗口作一些简单的计算,就如同使用一个功能强大的计算器,使用变量无须预先定义类型。
例如,设球半径为r=2,求球的体积
。
>>r=2%表达式将2赋予变量r
r=%系统返回r的值
2
>>v=4/3*pi*r^3%pi为内置常量
,乘方用^表示
v=
33.5103
几个表达式可以写在一行,用分号(;)或逗号(,)分割,用分号(;)使该表达式运算结果不显示,而逗号(,)则显示结果。
也可以将一个长表达式分在几行上写,用三点(…)续行。
若需要修改已执行过的命令行,可以在命令历史中找到该命令行复制,再粘贴至命令窗口修改。
也可以直接使用键盘↑↓调出已执行过的命令行修改。
1.3.2数据显示格式
MATLAB默认的数据显示格式为短格式(short):
当结果为整数,就作为整数显示;当结果是实数,以小数点后四位的长度显示。
若结果的有效数字超出一定范围,以科学计数法显示(如3.2000e-006表示
)。
数据显示格式可使用命令Format改变。
例如:
>>formatlong;v%长格式,16位
v=
33.51032163829112
>>formatshort;v%短格式
v=
33.5103
>>formatrational;v%有理格式,近似分数
v=
6501/194
1.3.3复数
MATLAB中复数可以如同实数一样,直接输入和计算。
例如:
>>a=1+2i;b=5-4*i;c=a/b
c=
-0.0732+0.3415i
1.3.4预定义变量
MATLAB有一些预定义变量(表2),启动时就已赋值,可以直接使用,如前我们使用的圆周率pi和虚数单位i.
表2常用预定义变量
变量名
说明
i或j
虚数单位
pi
圆周率3.14159…
eps
浮点数识别精度2^(-52)=
realmin
最小正实数
realmax
最大正实数
inf
无穷大
NaN
没有意义的数
预定义变量在工作空间观察不到。
如果预定义变量被用户重新赋值,则原来的功能暂不能使用。
当这些用户变量被清除(clear)或MATLAB重新启动后,这些功能得以恢复。
1.3.5用户变量
MATLAB变量名总以字母开头,以字母、数字或下划线组成,区分大小写,有效字符长度为63个。
如A,a,a1,a_b都是合法的,且a与A表示不同变量。
在CommandWindow中使用的变量一旦被赋值,就会携带这个值存在于工作空间,直到被清除或被赋予新的值。
ans是系统一个特别的变量名。
若一个表达式运算结果没有赋予任何变量,系统自动用ans存放答案。
例如:
>>A=5+4i;b=5-4*i;B=1;A*b%没有定义A*b的输出变量
ans=
41%ans来接受计算结果,注意这是大写A与小写b的乘积,尽管我们可以使用工作空间来查询和清除变量,但使用下列命令方式更快捷:
>>whos%查询Workspace中的变量列表
NameSizeBytesClass
A1x116doublearray(complex)
B1x18doublearray
a1x116doublearray(complex)
ans1x18doublearray
b1x116doublearray(complex)
c1x116doublearray(complex)
Grandtotalis6elementsusing80bytes
>>A%查询变量A的值
A=
5.0000+4.0000i
>>clearA%清除变量A
>>A%再查询A的值,已经不存在了
?
?
?
Undefinedfunctionorvariable'A'.
>>clear%清除Workspace中所有变量
>>whos%Workspace中已没有任何变量了
2.实验二矩阵与数组
实验目的和要求:
(1)熟练掌握数组的基本命令。
(2)熟练掌握矩阵的基本命令。
实验仪器:
计算机一台
实验步骤和内容:
MATLAB基本数据单元是无需指定维数的数组。
数组运算是MATLAB最鲜明的特点,一方面可以使得计算程序简明易读,另一方面可以提高计算速度。
2.1数组的输入
最常用的数组是双精度数值数组(doublearray)。
一维数组相当于向量,二维数组相当于矩阵,一维数组可以视为二维数组的特例。
二维数组的第一维称为“行”,第二维称为“列”。
MATLAB数组无需预先定义维数。
直接输入数组的元素,用中括号([])表示一个数组,同行元素间用空格或逗号分隔,不同行间用分号或回车分隔,例如:
>>clear;a=[1,2,3;4,5,6;7,8,9]
a=
123
456
789
或
>>a=[123%这种方式特别适用于大型矩阵
456
789]
a=
123
456
789
对于等差数列构造的一维数组,可用冒号运算生成,也可用函数linspace生成。
>>b=0:
3:
10%初值:
增量:
终值
b=
0369
>>b=0:
10%增量为1可省略
b=
012345678910
>>b=10:
-3:
0%递减
b=
10741
>>b=linspace(0,10,4)%将区间[0,10]等分为4-1=3份
b=
03.33336.666710.0000
>>length(b)%查询b的长度
ans=
4
>>b(3)%查询b的第三个元素
ans=
6.6667
>>b([1,end])%查询b的首和尾元素
ans=
010
二维数组元素双下标编址按通常方式,单下标编址按列排序。
>>size(a)%查询数组a的尺寸
ans=
33
>>a(3,2),a(6)
ans=
8
ans=
8
>>c=a([13],[23])%提取a的第一、第三行和第二、第三列(分块矩阵)
c=
23
89
>>d=a(2,:
)%提取a的第二行
d=
456
>>a(:
)%将a所有元素按单下标顺序排为列向量
ans=
1
4
7
2
5
8
3
6
9
一些特殊的二维数组可以用函数产生,例如:
>>a=zeros(2,4)%生成2行4列零矩阵
a=
0000
0000
>>b=ones(1,4)%生成1行4列1矩阵
b=
1111
>>c=[a;b]%拼接
c=
0000
0000
1111
>>c(2,1)=100%修改部分元素
c=
0000
100000
1111
>>reshape(c,2,6)%按2行6列重排矩阵元素
ans=
010010
10001001
注意:
数组下标对应矩阵的行和列,编址一律从1开始,不能用0.
矩阵输入也可用“load”命令从外部数据文件导入
2.2数组运算
数组运算是指数组对应元素之间的运算,也称点运算。
矩阵的乘法、乘方和除法有特殊的数学含义,并不是数组对应元素的运算,所数组乘法、乘方和除法的运算符前特别加了一个点。
特别要区分数组运算在乘法、乘方和除法上的意义和表示上与矩阵运算的不同。
表1数组运算符
运算
符号
说明
数组加与减
A+B与A-B
对应元素之间加减
数乘数组
k*A或A*k
k乘A的每个元素
数与数组加减
k+A或k-A
k加(减)A的每个元素
数组乘数组
A.*B
点运算只有点乘、点乘方、点除三个,表示对应元素之间的运算;(.*)是一个整体,点(.)不能漏掉,(.)和(*)之间也不能有空格
数组乘方
A.^k,k.^A
数除以数组
k./A
数组除法
左除A.\B,右除B./A
>>clear;A=[1-1;02];B=[01;1-1];
>>A.*B%注意不是A*B
ans=
0-1
0-2
>>A.\B,A./B
Warning:
Dividebyzero.
ans=
0-1.0000
Inf-0.5000
Warning:
Dividebyzero.
ans=
Inf-1
0-2
>>A.^2
ans=
11
04
>>1./A
Warning:
Dividebyzero.
ans=
1.0000-1.0000
Inf0.5000
2.3矩阵运算
矩阵是一个二维数组,所以矩阵的加、减、数乘等运算与数组运算是一致的。
但是有两点需要注意:
(1)对于乘法、乘方和除法等三种运算,矩阵运算与数组运算的运算符及含义不同:
矩阵运算按线性变换定义,使用通常符号;数组运算按对应元素运算定义,使用点运算符;
(2)数与矩阵加减、矩阵除法在数学上是没有意义的,在MATLAB中为简便起见,定义了这两类运算,其含义见表2.
表2矩阵运算符
运算
符号
说明
转置
A'
加与减
A+B与A-B
同数组运算
数乘矩阵
k*A或A*k
同数组运算
矩阵乘法
A*B
矩阵乘方
A^k
数与矩阵加减
k+A与k-A
k+A等价于k*ones(size(A))+A
矩阵除法
左除A\B,右除B/A
它们分别为矩阵方程AX=B和XA=B的解
>>A=[12;34];B=[43;21];
>>100+A
ans=
101102
103104
>>A*B,A.*B%注意矩阵运算和数组运算的区别
ans=
85
2013
ans=
46
64
>>A\B,B/A,A.\B,B./A%注意矩阵运算和数组运算的区别
ans=
-6.0000-5.0000
5.00004.0000
ans=
-3.50002.5000
-2.50001.5000
ans=
4.00001.5000
0.66670.2500
ans=
4.00001.5000
0.66670.2500
2.4数学函数
数组的数学函数也是按每个元素的运算,使用通常的函数符号,常用数学函数见表3
表3数学函数
函数
意义
函数
意义
sin
正弦
fix
向0取整
cos
余弦
mod
模余
tan
正切
rem
除法余数
cot
余切
abs
绝对值(模)
asin
反正弦
exp
指数函数
acos
反余弦
log
自然对数
sqrt
开方
log10
以10为底的对数
>>A=[4-1;32];
>>B=exp(A)
B=
54.59820.3679
20.08557.3891
>>C=fix(B)
C=
540
207
>>D=sin(C)
D=
-0.55880
0.91290.6570
>>E=log(D)
Warning:
Logofzero.
E=
-0.5820+3.1416i-Inf
-0.0911-0.4201
2.5关系与逻辑运算
MATLAB的关系运算和逻辑运算符都是对于元素的操作,其结果是特殊的逻辑数组(logicalarray)表4,“真”用1表示,“假”用0表示,而逻辑运算中,所有非零元素作为1(真)处理。
表4关系运算和逻辑运算
运算符
含义
运算符
含义
<
小于
&
与
<=
小于等于
|
或
>
大于
~
非
>=
大于等于
all
==
等于
any
~=
不等于
>>A=-2:
4,B=4:
-1:
-2
A=
-2-101234
B=
43210-1-2
>>A>B
ans=
0000111
>>A==B
ans=
0001000
>>A&B%逻辑运算中,所有非零元素作为1(真)处理
ans=
1101011
>>A|B
ans=
1111111
>>find(abs(A)>=2)%返回绝对值大于或等于2的元素的下标
ans=
1567
>>any(abs(A)>5)%若存在绝对值大于5的元素,返回1
ans=
0
>>all(abs(A)>5)%若所有元素绝对值大于5,返回1
ans=
0
3.实验三基本操作指令
实验目的和要求:
(1)熟练掌握一些基本循环语句。
(2)熟练掌握矩阵的常用命令和运算。
实验仪器:
计算机一台
实验步骤和内容:
3.1无条件循环
当需要无条件重复执行某些命令时,可以使用for循环:
for循环变量t=表达式1:
达式2:
表达式3
语句体
end
说明:
表达式1为循环初值,表达式2为步长,表达式3为循环终值;当表达式2省略时则默认步长为1;for语句允许嵌套。
如:
矩阵输入程序
m=input(‘矩阵行数:
m=’);
n=input(‘矩阵列数:
n=’);
fori=1:
m
forj=1:
n
disp([‘输入第’,num2str(i),’行,第’,num2str(j),’列元素’])
A(i,j)=input(‘’)
endend
3.2条件循环
1)if-else-then语句
if-else-then语句的常使用三种形式为:
(1)if逻辑表达式(3)if逻辑表达式1
语句体语句体1
endelseif逻辑表达式2
语句体2
(2)if逻辑表达式1elseif逻辑表达式3
语句体1…
elseelse
语句体2语句体n
endend
2)while循环语句
while循环的一般使用形式为:
while表达式
语句体
End
3.3分支结构
若需要对不同的情形执行不同的操作,可用switch分支语句:
switch表达式(标量或字符串)
case值1
语句体1
case值2
语句体2
…
otherwise
语句体n
end
说明:
当表达式不是“case”所列值时,执行otherwise语句体。
3.4建立M文件
将多个可执行的系统命令,用文本编辑器编辑后并存放在后缀为.m的文件中,若在MATLAB
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 实验 指导书