Matlab教程资料.docx
《Matlab教程资料.docx》由会员分享,可在线阅读,更多相关《Matlab教程资料.docx(96页珍藏版)》请在冰点文库上搜索。
![Matlab教程资料.docx](https://file1.bingdoc.com/fileroot1/2023-6/16/c0d31e17-bbcb-48bd-b7f1-e65e86d70a53/c0d31e17-bbcb-48bd-b7f1-e65e86d70a531.gif)
Matlab教程资料
MATLAB教程
第一部分MATLAB基础语言
第二部分MATLAB平面及立体绘图
第三部分MATLABSiunlink仿真
第四部分MATLABGUI
第一部分MTLAB语言
● 第一章MATLAB介绍
● 第二章MATLAB工作环境
● 第三章MATLAB基本操作
1. 变量及其命名规则2. MATLAB赋值语句3. MATLAB常用数学函数
4. MATLAB系统命令5. MATLAB语言中的关系与逻辑运算
● 第四章矩阵
1. 矩阵的产生2. 矩阵的运算3. 矩阵函数
● 第五章字符串及其处理
1. 字符串的基本操作2. 字符串函数
● 第六章MATLAB控制语句
1. for循环语句2. while循环语句3. if-else-end分枝语句4. switch-case语句
● 第七章辅助语句
1. 注释语句2. 中断语句3. 暂停语句4. 回显语句
● 第八章MATLAB的输入与输出语句
● 第九章文件操作
● 第十章M程序与M函数
● 第十一章符号计算
MATLAB-巨人肩上的工具MATLAB名字是由MATrix和LABoratory两个词的前三个字母组合而成的。
它是MathWorks公司于1982年推出的一套高性能的数值计算和可视化数学软件。
被誉为“巨人肩上的工具”。
由于使用Matlab编程运算与人进行科学计算的思路和表达方式完全一致,所以不象学习其它高级语言--如Basic、Fortran和C等那样难于掌握,用Matlab编写程序犹如在演算纸上排列出公式与求解问题,所以又被称为演算纸式科学算法语言一般数值分析、矩阵运算、数字信号处理、建模和系统控制和优化等应用程序,并集应用程序和图形于一便于使用的集成环境中。
在这个环境下,对所要求解的问题,用户只需简单地列出数学表达式,其结果便以数值或图形方式显示出来。
MATLAB的含义是矩阵实验室(MATRIXLABORATORY),主要用于方便矩阵的存取,其基本元素是无须定义维数的矩阵。
MATLAB自问世以来,就是以数值计算称雄。
MATLAB进行数值计算的基本单位是复数数组(或称阵列),这使的MATLAB高度“向量化”。
经过十几年的完善和扩充,现已发展成为线性代数课程的标准工具。
由于它不需定义数组的维数,并给出矩阵函数、特殊矩阵专门的库函数,使之在求解诸如信号处理、建模、系统识别、控制、优化等领域的问题时,显得大为简捷、高效、方便,这是其它高级语言所不能比拟的。
美国许多大学的实验室都安装有MATLAB供学习和研究之用。
在那里,MATLAB是攻读学位的大学生硕士生博士生必须掌握的基本工具。
MATLAB中包括了被称作工具箱(TOOLBOX)的各类应用问题的求解工具。
工具箱实际上是对MATLAB进行扩展应用的一系列MATLAB函数(称为M文件),它可用来求解各类学科的问题,包括信号处理、图象处理、控制系统辨识、神经网络等。
随着MATLAB版本的不断升级,其所含的工具箱的功能也越来越丰富,因此,应用范围也越来越广泛,成为涉及数值分析的各类工程师不可不用的工具。
MATLAB5.3中包括了图形界面编辑GUI,改变了以前单一的“在指令窗通过文本形的指令进行各种操作”的状况。
这可让使用者也可以象VBVCVJDELPHI等那样进行一般的可视化的程序编辑。
在命令窗口(matlabcommandwindow)键入simulink,就出现(SIMULINK)窗口。
以往十分困难的系统仿真问题,用
SIMULINK只需拖动鼠标即可轻而易举地解决问题,这也是近来受到重视原因所在。
MATLAB工作环境
● 运行MATLAB的可执行文件,自动创建MATLAB5.3指令窗(CommandWindow)。
这种指令窗如图所示:
● 而在它的功能选单一共有File,Edit,Options,Windows,Help五个主要功能,每一个之下各又有下一层的功能
● 说明:
我所作的原程序有Win98和Win2000下运行的,出现的提示号有可能不同。
● 如果你是个初学者,可以在指令窗键入demo,这可是学习的好帮手。
?
demo
● 一旦发现指令不知如何使用时,help命令将告诉你使用。
例:
?
helpsin
SINSine.
SIN(X)isthesineoftheelementsofX.
Overloadedmethods
helpsym/sin.m
在MATLAB下进行基本数学运算,只需将运算式直接打入提示号(>>)(但在win98下没有,而在Win2000下为?
,这一点请大家学习是注意一下)之後,并按入Enter键即可。
例如:
(10*19+2/4-34)/2*3
ans
=234.7500,MATLAB会将运算结果直接存入一变数ans,代表MATLAB运算後的答案,并显示其数值屏幕上。
如果在上述的例子结尾加上”;”,则计算结果不会显示在指令视窗上,要得知计算值只须键入该变数值即可● MATLAB可以将计算结果以不同的精确度的数字格式显示,我们可以在指令视窗上的功能选单上的Options下选NumericalFormat,或者直接在指令视窗键入以下的各个数字显示格式的指令。
»formatshort(这是默认的)
MATLAB利用了↑↓二个游标键可以将所下过的指令叫回来重覆使用。
按下↑则前一次指令重新出现,之后再按Enter键,即再执行前一次的指令。
而↓键的功用则是往后执行指令。
其它在键盘上的几个键如→←,Delete,Insert,其功能则显而易见,试用即知无须多加说明。
当要暂时执行作业系统(例如Dos)的指令而还要执行MATLAB,可以利用!
加上原作业系统的指令,例如!
dir,!
formata:
。
● Ctrl-C(即同时按Ctrl及C二个键)可以用来中止执行中的MATLAB的工作。
● 有三种方法可以结束MATLAB,1.exit2.quit3.直接关闭MATLAB的命令视窗(Commandwindow)
变量及其命名规则
● 变量,1. 变量名的大小写是敏感。
2. 变量的第一个字符必须为英文字母,而且不能超过31个字符。
3. 变量名可以包含下连字符、数字,但不能为空格符、标点。
预定义的变量
ans
预设的计算结果的变量名
eps
MATLAB定义的正的极小值=2.2204e-16
pi
内建的π值
inf
∞值,无限大(
)
NaN
无法定义一个数目(
)
i或j
虚数单位i=j=√-1
nargin
函数输入参数个数
nargout
函数输出参数个数
realmax
最大的正实数
realmin
最小的正实数
flops
浮点运算次数
而键入clear则是去除所有定义过的变量名称。
MATLAB赋值语句
● 表达式,MATLAB书写表达式的规则与“手写算式”差不多相同。
如果一个指令过长可以在结尾加上...(代表此行指令与下一行连续),例如
?
3*...
6
ans=
18
MATLAB常用数学函数
● 三角函数和双曲函数
名称
含义
名称
含义
名称
含义
sin
正弦
csc
余割
atanh
反双曲正切
cos
余弦
asec
反正割
acoth
反双曲余切
tan
正切
acsc
反余割
sech
双曲正割
cot
余切
sinh
双曲正弦
csch
双曲余割
asin
反正弦
cosh
双曲余弦
asech
反双曲正割
acos
反余弦
tanh
双曲正切
acsch
反双曲余割
atan
反正切
coth
双曲余切
atan2
四象限反正切
acot
反余切
asinh
反双曲正弦
sec
正割
acosh
反双曲余弦
● 指数函数
名称
含义
名称
含义
名称
含义
exp
E为底的指数
log10
10为底的对数
pow2
2的幂
log
自然对数
log2
2为底的对数
sqrt
平方根
● 复数函数
名称
含义
名称
含义
名称
含义
abs
绝对值
conj
复数共轭
real
复数实部
angle
相角
imag
复数虚部
● 圆整函数和求余函数
名称
含义
名称
含义
ceil
向+∞圆整
rem
求余数
fix
向0圆整
round
向靠近整数圆整
floor
向-∞圆整
sign
符号函数
mod
模除求余
● 矩阵变换函数
名称
含义
名称
含义
fiplr
矩阵左右翻转
diag
产生或提取对角阵
fipud
矩阵上下翻转
tril
产生下三角
fipdim
矩阵特定维翻转
triu
产生上三角
Rot90
矩阵反时针90翻转
● 其他函数
名称
含义
名称
含义
min
最小值
max
最大值
mean
平均值
median
中位数
std
标准差
diff
相邻元素的差
sort
排序
length
个数
norm
欧氏(Euclidean)长度
sum
总和
prod
总乘积
dot
内积
cumsum
累计元素总和
cumprod
累计元素总乘积
cross
外积
MATLAB系统命令
命令
含义
help
在线帮助
helpwin
在线帮助窗口
helpdesk
在线帮助工作台
demo
运行演示程序
ver
版本信息
readme
显示Readme文件
who
显示当前变量
whos
显示当前变量的详细信息
clear
清空工作间的变量和函数
pack
整理工作间的内存
load
把文件调入变量到工作间
save
把变量存入文件中
quit/exit
退出MATLAB
what
显示指定的matlab文件
lookfor
在HELP里搜索关键字
which
定位函数或文件
path
获取或设置搜索路径
echo
命令回显
cd
改变当前的工作目录
pwd
显示当前的工作目录
dir
显示目录内容
unix
执行unix命令
dos
执行dos命令
!
执行操作系统命令
computer
显示计算机类型
?
helpdemo
DEMORundemonstrations.
Type"demo"atthecommandlinetobrowseavailabledemos.
Withtheoptionalactionargumentdemo
('matlab'|'toolbox'|'simulink'|'blockset'|'stateflow'),
DEMOopensthedemoscreentothespecifiedsubtopic.
WiththeoptionalcategoryArgargument,
DEMOopenstothespecifiedtoolboxorcategory,e.g.
demotoolboxsignal
demomatlablanguage
?
computer
ans=
PCWIN
?
ver
--------------------------------------------------
MATLABVersion5.3.0.10183(R11)onPCWIN
MATLABLicenseNumber:
76297
--------------------------------------------------
MATLABToolboxVersion5.3(R11)15-Jan-1999
MATLABRuntimeServerDevelopmentKitVersion5.3(R11)05-Oct-1998
RealTimeWindowsTargetVersion1.0(R11)10-Jul-1998
DataAcquisitionToolboxVersion1.0(R11)Beta2.007-Jan-1999
Dials&GaugesBlocksetVersion1.0(R11)Beta309-Jan-1999
SimulinkReportGeneratorVersion1.0(R11)05-Dec-1998
MATLABReportGeneratorVersion1.0(R11)05-Dec-1998
DatabaseToolboxVersion1.0(R11)01-Aug-1998
PowerSystemBlocksetVersion1.1(R11)10-Aug-1998
MATLABCompiler(andCompiler1.2.1)Version2.0(R11)08-Dec-1998
CommunicationsToolboxVersion1.4(R11)10-Jul-1998
SymbolicMathToolboxVersion2.1(R11)11-Sep-1998
NAGFoundationToolbox-Numerical...Version1.0.3(R11)06-Jun-1998
MappingToolboxVersion1.1(R11)04-Sep-1998
WaveletToolboxVersion1.2(R11)10-Jul-1998
PartialDifferentialEquationToolboxVersion1.0.3(R11)21-Nov-1997
FinancialToolboxVersion2.0.1(R11)14-Aug-1998
LMIControlToolboxVersion1.0.5(R11)09-Sep-1998
QFTControlDesignToolboxVersion1.0.3(R11)21-Nov-1997
Fixed-PointBlocksetVersion2.0(R11)10-Jul-1998
DSPBlocksetVersion3.0(R11)10-Jul-1998
FuzzyLogicToolboxVersion2.0.1(R11)16-Sep-1998
ModelPredictiveControlToolboxVersion1.0.4(R11)03-Sep-1998
FrequencyDomainIdentificationToo...Version2.0.3(R11)29-Sep-1998
Higher-OrderSpectralAnalysisToolboxVersion2.0.3(R11)10-Jul-1998
StatisticsToolboxVersion2.2(R11)24-Jul-1998
NonlinearControlDesignBlocksetVersion1.1.3(R11)10-Aug-1998
ImageProcessingToolboxVersion2.2(R11)05-Aug-1998
NeuralNetworkToolboxVersion3.0.1(R11)01-Jul-1998
Mu-AnalysisandSynthesisToolboxVersion3.0.4(R11)10-Apr-1998
SignalProcessingToolboxVersion4.2(R11)10-Jul-1998
SplineToolboxVersion2.0.1(R11)14-Aug-1998
OptimizationToolboxVersion2.0(R11)09-Oct-1998
RobustControlToolboxVersion2.0.6(R11)10-Apr-1998
SystemIdentificationToolboxVersion4.0.5(R11)10-Apr-1998
ControlSystemToolboxVersion4.2(R11)15-Jul-1998
Real-TimeWorkshopVersion3.0.0(R11)13-Oct-1998
SystemBuildtoSimulinkTranslatorVersion2.0(R11)10-Aug-1998
StateflowVersion2.0(R11)16-Jan-1999
SimulinkVersion3.0(R11)01-Sep-1998
MATLAB语言中的关系与逻辑运算
在执行关系及逻辑运算时,MATLAB将输入的不为零的数值都视为真(True)而为零的数值则视为否(False)。
运算的输出值将判断为真者以1表示而判断为否者以0表示。
各个运算元须用在二个大小相同的阵列或是矩阵中的比较● 关系运算
指令
含义
<
小于
<=
小于等于
>
大于
>=
大于等于
==
等于
~=
不等于
?
a=1:
2:
11;
?
b=2:
1:
7;
?
a>b
ans=
001111
?
a==b
ans=
010000
?
a>=b
ans=
011111
?
a-(b>4)
ans=
1356810
● 逻辑运算
指令
含义
&
逻辑and
|
逻辑or
~
逻辑not
(a<2)|(b>6)
ans=
100001
c=a+(a>3)|(b<6)
c=
111111
● 逻辑关系函数
指令
含义
xor
不相同就取1,否则取0
any
只要有非0就取1,否则取0
all
全为1取1,否则为0
isnan
为数NaN取1,否则为0
isinf
为数inf取1,否则为0
isfinite
有限大小元素取1,否则为0
ischar
是字符串取1,否则为0
isequal
相等取1,否则取0
ismember
两个矩阵是属于关系取1,否则取0
isempty
矩阵为空取1,否则取0
isletter
是字母取1,否则取0(可以是字符串)
isstudent
学生版取1
isprime
质数取1,否则取0
isreal
实数取1,否则取0
isspace
空格位置取1,否则取0
isequal(a,b)
ans=
0
isreal(a)
ans=
1
isstudent
ans=
0
矩阵的产生
1. 简易阵列MATLAB的运算事实上是以阵列(array)及矩阵(matrix)方式在做运算,而这二者在MATLAB的基本运算性质不同,阵列强调元素对元素的运算,而矩阵则采用线性代数的运算方式。
而宣告一变数为阵列或是矩阵时,如果是要个别键入元素,须用中括号[]将元素置于其中。
阵列为一维元素所构成,而矩阵为多维元素所组成,例如»x=[12345678];%一维1x8阵列
»x=[12345678;4567891011];%二维2x8矩阵,以;区隔各列的元素
»x=[12345678%二维2x8矩阵,各列的元素分二行键入
4567891011];
»x(3)%x的第三个元素
ans=
2
»x([125])%x的第一、二、五个元素
ans=
143
x(1:
5)%x的第前五个元素
ans=
14253
»x(10:
end)%x的第十个元素后的元素
ans=
869710811
»x(10:
-1:
2)%x的第十个元素和第二个元素的倒排
ans=
857463524
»x(find(x>5))%x中大于5的元素
ans=
6
7
8
6
9
7
10
8
11
»x(4)=100%给x的第四个元素重新给值
x=
12345678
410067891011
»x(3)=[]%删除第三个元素
x=
Columns1through12
14100364758697
Columns13through15
10811
»x(16)=1%加入第十六个元素
x=
Columns1through12
14100364758697
Columns13through16
108111
2 建立阵列上面的方法只适用于元素不多的情况,但是当元素很多的时候,则须采用以下的方式:
»x=(0:
0.02:
1);%以:
起始值=0、增量值=0.0.2、终止值=1的矩阵
»x=linspace(0,1,100);%利用linspace,以区隔起始值=0终止值=1之间的元素数目=100
»a=[]%空矩阵
a=
[]
»zeros(2,2)%全为0的矩阵
ans=
0