复习提纲.docx
- 文档编号:30122346
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:19
- 大小:25.49KB
复习提纲.docx
《复习提纲.docx》由会员分享,可在线阅读,更多相关《复习提纲.docx(19页珍藏版)》请在冰豆网上搜索。
复习提纲
第一章MATLAB语言基础
命令窗口的分页输出
•moreoff:
不允许分页moreon:
允许分页
•more(n):
指定每页输出的行数
多行命令(…)
•如果命令语句超过一行或者太长希望分行输入,则可以使用多行命令继续输入。
一些特殊的变量
ans:
用于结果的缺省变量名i、j:
虚数单位
pi:
圆周率nargin:
函数的输入变量个数
eps:
计算机的最小数nargout:
函数的输出变量个数
inf:
无穷大realmin:
最小正实数
realmax:
最大正实数nan:
不定量
MATLAB的工作空间包含了一组可以在命令窗口中调整(调用)的参数
•who:
显示当前工作空间中所有变量的一个简单列表
•whos:
则列出变量的大小、数据格式等详细信息
•clear:
清除工作空间中所有的变量
•clear变量名:
清除指定的变量
保存和载入workspace
(1)savefilenamevariables
•将变量列表variables所列出的变量保存到磁盘文件filename中
•Variables所表示的变量列表中,不能用逗号,各个不同的变量之间只能用空格来分隔。
(2)loadfilenamevariables
•将以前用save命令保存的变量variables从磁盘文件中调入MATLAB工作空间。
•用load命令调入的变量,其名称为用save命令保存时的名称,取值也一样。
•Variables所表示的变量列表中,不能用逗号,各个不同的变量之间只能用空格来分隔。
文件管理
•what:
显示当前目录下所有与matlab相关的文件及它们的路径。
•dir:
显示当前目录下所有的文件
•which:
显示某个文件的路径
•cdpath:
由当前目录进入path目录
•cd..:
返回上一级目录
•cd:
显示当前目录
•typefilename:
在命令窗口中显示文件filename
•deletefilename:
删除文件filename
使用帮助
help命令,在命令窗口中显示
helpwin:
帮助窗口
helpdesk:
帮助桌面,浏览器模式
lookfor命令:
返回包含指定关键词的那些项
demo:
打开示例窗口
结构数组和细胞数组
结构数组元素是结构类型数据,包含结构类型的所有域,类似于数据库中的记录;域名(field)类似于数据库中的字段名。
结构数组名与域名之间以圆点“.”间隔,不同域的维数、类型可以不同,用于存储不同类型的数据。
结构数组的创建
(1)对域赋值创建
struct_name(record#).field_name=data,创建1*1的结构数组时可省略记录号。
(2)利用struct函数创建结构数组
1)struct_name=struct(‘field1’,{},’field2’,{},…)
2)struct_name=struct(‘field1’,values1,’field2’,values2,…)
利用格式1)命令创建结构数组时,只创建含指定域名的空结构数组;利用格式2)的命令创建结构数组时,valuesn以细胞数组的形式指定各域的值。
结构数组的操作
(1)向结构数组中添加新的域
通过对结构数组中任一元素所需的域进行赋值即可(空值亦可),未赋值的域自动填入空值。
(2)获取结构数组中域名,
fieldnames(struct_name)
(3)删除结构数组中的域
1)rmfield(struct_name,field_name)
2)rmfield(struct_name,{fields})
(4)删除结构数组中的元素
将欲删除的元素赋空值即可
(5)获取结构数组中的域值
1)直接引用
(1)struct_name.field_name(m,n)
(2)struct_name(i,j).field_name(m,n)
格式
(1)只适用于1*1的结构数组,返回指定的域值。
当域为数组时,需指定其行号和列号m、n,若不指定,则获得该域所有的值。
格式
(2)适用于维数高于1*1的结构数组,但不能同时获取多个域值或多个元素同一域值。
如果需要获取所有元素同一域的值,可以采用循环语句。
2)利用函数getfield
(1)getfield(struct_name,field_name,{m,n})
(2)getfield(struct_name,{i,j},field_name,{m,n})
格式
(1)等价于struct_name.field_name(m,n)
格式
(2)等价于struct_name(i,j).field_name(m,n)。
(6)设置结构数组中的域值
1)直接赋值
(1)struct_name.field_name(m,n)=field_value
(2)struct_name(i,j).field_name(m,n)=field_value
格式
(1)只适用于1*1的结构数组,给指定的域赋值。
当域为数组时,需指定其行号和列号m、n,若不指定,须以数组形式赋值。
格式
(2)适用于维数高于1*1的结构数组,但不能同时给多个域或多个元素赋值。
2)利用函数setfield
(1)struct_name=setfield(struct_name,’field’,{m,n},field_value)
(2)struct_name=setfield(struct_name,{i,j},’field’,{m,n},field_value)
格式
(1)等价于struct_name.field_name(m,n)=field_value。
格式
(2)等价于struct_name(i,j).field_name(m,n)=field_value。
(7)结构数组的域排序
1)struct_name=orderfields(struct_name1),按照结构数组struct_name1中域名的ASCII码排序
2)struct_name=orderfields(struct_name1,struct_name2),使结构数组struct_name1中的域名按照结构数组struct_name2中的域名顺序排列,struct_name2中的域名必须和struct_name1中的域名相同。
3)struct_name=orderfields(struct_name1,c),使结构数组struct_name1中的域名按照c指定的顺序排列,c指定的域名必须和struct_name1的域名相同。
4)struct_name=orderfields(struct_name1,perm),使结构数组struct_name1中的域名按照perm指定的顺序排列,perm的元素个数必须与结构数组struct_name1中的域名个数一致。
5)[struct_name,perm]=orderfields(…),格式(5)返回按照格式(1~4)排序后新的结构数组struct_name及排序顺序号perm。
(8)结构数组及其域的判定
1)tf=isstruct(A),判断A是否为结构数组,是tf=1,否tf=0;
2)isfield(struct_name,field_name),判断指定的域名field_name是否为结构数组struct_name的域,是tf=1,否tf=0。
细胞数组特点
细胞数组(cellarray)与结构数组类似,也是把一组类型、维数不同的数据组织在一起,存储在细胞数组中,与结构数组不同的是,结构数组中的元素有域及域名,对数组元素数据的访问是通过域名实现的。
细胞数组的基本元素是细胞(cell),每个细胞可以存储不同类型、不同维数的数据,通过下标区分不同的细胞。
创建细胞数组
(1)通过赋值创建细胞数组
cell_name{i,j}={value}
注意:
花括号和圆括号在使用上的细微区别,花括号表示细胞元素的内容;圆括号表示细胞元素。
在建立细胞数组时,是通过给细胞元素赋值来确定细胞元素的。
细胞数组结构图可以通过cellplot绘出。
(2)利用函数cell创建细胞数组
1)cell_name=cell(n),创建一个n×n的空细胞数组
2)cell_name=cell(m,n)或cell_name=cell([mn]),创建一个m×n的空细胞数组
3)cell_name=cell(m,n,p,…)或cell_name=cell([mnp…]),创建一个m×n×p×…的空细胞数组
4)cell_name=cell(size(A)),创建一个与A维数相同的空细胞数组
细胞数组的操作
(1)细胞数组的扩充与重组——与数值数组方法类似
(2)细胞元素的改写和删除
细胞元素内容的改写只需重新赋值,删除只需赋以空值即可(用花括号),但不改变细胞元素的个数。
要删除细胞元素,则需整行或整列删除(用圆括号)。
(3)细胞数组的数据显示
celldisp(cell_name)
(4)细胞数组的访问
1)细胞元素的访问,cell_name(i,j)
2)细胞元素内容的访问,cell_name{i,j}(m,n)
注意花括号和圆括号的使用。
第二章MATLAB的数值计算
创建矩阵的方法
直接输入法,规则:
矩阵元素必须用[]括住;矩阵元素必须用逗号或空格分隔;在[]内矩阵的行与行之间必须用分号分隔。
冒号的作用
用于生成等间隔的向量,默认间隔为1;用于选出矩阵指定行、列及元素;循环语句。
语句生成
(1)用线性等间距生成向量矩阵(start:
step:
end)
(2)a=linspace(n1,n2,n)
在线性空间上,行矢量的值从n1到n2,数据个数为n,缺省n为100。
(3)a=logspace(n1,n2,n)
在对数空间上,行矢量的值从10n1到10n2,数据个数为n,缺省n为50。
这个指令为建立对数频域轴坐标提供了方便。
矩阵下标
MATLAB通过确认矩阵下标,可以对矩阵进行插入子块,提取子块和重排子块的操作。
A(m,n):
提取第m行,第n列元素
A(:
n):
提取第n列元素
A(m,:
):
提取第m行元素
A(m1:
m2,n1:
n2):
提取第m1行到第m2行和第n1列到第n2列的所有元素(提取子块)。
A(:
):
得到一个长列矢量,该矢量的元素按矩阵的列进行排列。
矩阵扩展:
如果在原矩阵中一个不存在的地址位置上设定一个数(赋值),则该矩阵会自动扩展行列数,并在该位置上添加这个数,而且在其他没有指定的位置补零。
消除子块:
如果将矩阵的子块赋值为空矩阵[],则相当于消除了相应的矩阵子块。
矩阵的大小
[m,n]=size(A,x):
返回矩阵的行列数m与n,当x=1,则只返回行数m,当x=2,则只返回列数n。
length(A)=max(size(A)):
返回行数或列数的最大值。
用matlab函数创建矩阵
空阵[]—matlab允许输入空阵,当一项操作无结果时,返回空阵。
单位矩阵:
eye(m,n);eye(m)
零矩阵:
zeros(m,n);zeros(m)
一矩阵:
ones(m,n);ones(m)
对角矩阵:
对角元素向量V=[a1,a2,…,an]A=diag(V)
矩阵运算
矩阵加、减(+,-)运算
规则:
相加、减的两矩阵必须有相同的行和列两矩阵对应元素相加减;允许参与运算的两矩阵之一是标量。
标量与矩阵的所有元素分别进行加减操作。
矩阵乘()运算
规则:
A矩阵的列数必须等于B矩阵的行数;标量可与任何矩阵相乘。
矩阵的其它运算
inv——矩阵求逆;det——行列式的值;eig——矩阵的特征值;diag——对角矩阵;’——矩阵转置;sqrt——矩阵开方;矩阵的变向:
rot90:
旋转;fliplr:
上翻;flipud:
下翻
矩阵的数组运算
数组运算指元素对元素的算术运算,与通常意义上的由符号表示的线性代数矩阵运算不同
多项式运算
(1)多项式的建立与表示方法
使用函数roots可以求出多项式等于0的根,根用列向量表示。
若已知多项式等于0的根,函数poly可以求出相应多项式。
(2)多项式的运算
相乘conv,可以嵌套使用
相除deconv,[q,r]=deconv(c,b)
求多项式的微分多项式polyder
求多项式函数值polyval(p,n):
将值n代入多项式求解。
(3)多项式的拟合
多项式拟合又称为曲线拟合,其目的就是在众多的样本点中进行拟合,找出满足样本点分布的多项式。
这在分析实验数据,将实验数据做解析描述时非常有用。
命令格式:
p=polyfit(x,y,n),其中x和y为样本点向量,n为所求多项式的阶数,p为求出的多项式。
(4)多项式插值
多项式插值是指根据给定的有限个样本点,产生另外的估计点以达到数据更为平滑的效果。
该技巧在信号处理与图像处理上应用广泛。
y=interp1(xs,ys,x,’method’)
在有限样本点向量xs与ys中,插值产生向量x和y,所用方法定义在method中,有4种选择:
nearest:
执行速度最快,输出结果为直角转折
linear:
默认值,在样本点上斜率变化很大
spline:
最花时间,但输出结果也最平滑
cubic:
最占内存,输出结果与spline差不多
寻优函数
fmin——单变量函数
fmins——多变量函数
constr——有约束条件
数据分析
max——各列最大值
mean——各列平均值
sum——各列求和
第三章MATLAB的符号运算
符号运算与数值运算的区别
数值运算中必须先对变量赋值,然后才能参与运算。
符号运算无须事先对独立变量赋值,运算结果以标准的符号形式表达。
符号矩阵的创建
用matlab函数sym创建矩阵(symbolic的缩写),命令格式:
A=sym('[]'),符号矩阵内容同数值矩阵;需用sym指令定义;需用''标识。
注意:
符号矩阵的每一行的两端都有方括号,这是与matlab数值矩阵的一个重要区别。
用字符串直接创建矩阵:
模仿matlab数值矩阵的创建方法;需保证同一列中各元素字符串有相同的长度。
syms
符号矩阵与数值矩阵的转换
将数值矩阵转化为符号矩阵函数调用格式:
sym(A)
将符号矩阵转化为数值矩阵函数调用格式:
numeric(A)
符号微积分与积分变换
•diff(f)—对缺省变量求微分
•diff(f,v)—对指定变量v求微分
•diff(f,v,n)—对指定变量v求n阶微分
•int(f)—对f表达式的缺省变量求积分
•int(f,v)—对f表达式的v变量求积分
•int(f,v,a,b)—对f表达式的v变量在(a,b)区间求定积分
符号代数方程求解
solve(f)——求一个方程的解
solve(f1,f2,…fn)——求n个方程的解
solve(f,'b')——对指定变量b求解
符号微分方程求解
命令格式:
dsolve(f,g)
•f——微分方程,可多至12个微分方程的求
解;g为初始条件
•默认自变量为'x',可任意指定自变量't','u'等
•微分方程的各阶导数项以大写字母D表示
第四章matlab绘图
plot的调用格式
plot(x)——缺省自变量绘图格式,x为向量,以x元素值为纵坐标,以相应元素下标为横坐标绘图
plot(x,y)——基本格式,以y(x)的函数关系作出直角坐标图,如果y为n×m的矩阵,则以x为自变量,作出m条曲线
plot(x1,y1,x2,y2)——多条曲线绘图格式
plot(x,y,’s’)——开关格式,开关量字符串s设定曲线颜色和绘图方式,使用颜色字符串的前1~3个字母。
plot(x1,y1,’s1’,x2,y2,’s2’,…)
字母颜色标点线型
y黄色·点线
m粉红○圈线
c亮蓝××线
r大红++字线
g绿色-实线
b蓝色星形线
w白色:
虚线
k黑色-·(--)点划线
1.单窗口单曲线绘图
2.单窗口多曲线绘图
holdon
3.单窗口多曲线分图绘图
subplot——子图分割命令
调用格式:
subplot(m,n,p)——按从左至右,从上至下排列
4.多窗口绘图
figure(n)——创建窗口函数,n为窗口顺序号。
5.图形加注功能
title(‘字符串’),在所画图形的最上端显示说明该图形标题的字符串
xlabel(‘字符串’),ylabel(‘字符串’),设置x,y坐标轴的名称
text(x,y,’字符串’),在图形的指定坐标位置(x,y)处,标示单引号括起来的字符串。
gtext(‘字符串’),利用鼠标在图形的某一位置标示字符串。
字体:
\bf黑体、\it斜体、\rm正体;输入特殊的文字需要用反斜杠(\)开头。
\alphaα、\piπ
legend(‘字符串1’,‘字符串2’,…,‘字符串n’),在屏幕上开启一个小视窗,然后依据绘图命令的先后次序,用对应的字符串区分图形上的线。
gridon/off——打开、关闭坐标网格线
axis的用法:
axis([xminxmaxyminymax])——用行向量中给出的值设定坐标轴的最大和最小值。
axis(‘equal’)——将两坐标轴设为相等;axison/off——显示和关闭坐标轴的标记、标志;axisauto——将坐标轴设置返回自动缺省值。
6.fplot——绘制函数图函数
fplot的调用格式:
fplot(fun,lims)—绘制函数fun在x区间lims=[xminxmax]的函数图。
fplot(fun,lims,'corline')—以指定线形绘图。
[x,y]=fplot(fun,lims)—只返回绘图点的值,而不绘图。
用plot(x,y)来绘图。
7.ezplot——符号函数的简易绘图函数
ezplot的调用格式:
ezplot(f)—这里f为包含单个符号变量x的符号表达式,在x轴的默认范围[-2*pi2*pi]内绘制f(x)的函数图
ezplot(f,[xmin,xmax])—给定区间
ezplot(f,[xmin,xmax],figure(n))—指定绘图窗口绘图。
ezplot(隐函数,选项),隐函数用单引号括起来;选项中可设置特定的x,y显示区间。
plot3——基本的三维图形指令
调用格式:
plot3(x,y,z)——x,y,z是长度相同的向量;plot3(X,Y,Z)——X,Y,Z是维数相同的矩阵;plot3(x,y,z,s)——带开关量;plot3(x1,y1,z1,'s1',x2,y2,z2,'s2',…)。
二维图形的所有基本特性对三维图形全都适用。
定义三维坐标轴大小axis([xminxmaxyminymaxzminzmax])
gridon(off)绘制三维网格
text(x,y,z,‘string’)三维图形标注
子图和多窗口也可以用到三维图形中
三维网格图
生成坐标——[X,Y]=meshgrid(x,y),生成x和y平面的网格表示,函数内的参数表示x和y的坐标范围。
表达式点运算——Z=X.^2+Y.^2
mesh(x,y,z,c):
使用mesh()绘制三维曲面的网格图。
x,y分别为构成该曲面的x和y向量或矩阵;z为高度矩阵;c为颜色矩阵,表示在不同高度下的颜色范围。
如果省略c选项,则自动假定c=z。
三维曲面图
surf——三维曲面绘图函数,与网格图看起来一样
调用格式:
surf(x,y,z)——绘制三维曲面图,x,y,z为图形坐标向量
ezmesh(),ezsurf():
基于函数的三维曲面绘制。
注意:
表达式不再采用点运算符号,且表达式应是z的显式表达式。
裁减修饰——局部图形的剪切处理
如果不想要图形中的某个部分,只要把该部分的函数值设置成NaN即可。
第五章matlab句柄绘图
高层绘图与底层绘图的区别
高层绘图函数——是对整个图形进行操作的,图形每一部分的属性都是按缺省方式设置的,充分体现了matlab语言的实用性。
底层绘图函数——可以定制图形,对图形的每一部分进行控制,用户可以用来开发用户界面以及各专业的专用图形。
充分体现了matlab语言的开发性
什么是句柄?
句柄是图形对象的标识代码,标识代码含有图形对象的各种必要的属性信息。
句柄属性的设置与修改
get:
获得句柄图形对象的属性和返回某些对象的句柄值
set:
改变图形对象的属性
专用函数
gcf:
当前窗口对象的句柄GetCurrentFigure
gca:
当前轴对象的句柄GetCurrentAxes
操作格式
h=gcf将当前窗口对象的句柄返回h
get(h)或get(gcf)查阅当前窗口对象的属性
delete(gcf)删除当前窗口的属性
第六章SIMULINK仿真基础
所谓模型化图形输入是指SIMULINK提供了一些按功能分类的基本的系统模块,用户只需要知道这些模块的输入输出及模块的功能,而不必考察模块内部是如何实现的,通过对这些基本模块的调用,再将它们连接起来就可以构成所需要的系统模型(以.mdl文件进行存取),进而进行仿真与分析。
设置仿真参数和选择解法器
仿真时间:
注意这里的时间概念与真实的时间并不一样,只是计算机仿真中对时间的一种表示,比如10秒的仿真时间,如果采样步长定为0.1,则需要执行100步,若把步长减小,则采样点数增加,那么实际的执行时间就会增加。
一般仿真开始时间设为0,而结束时间视不同的因素而选择。
总的说来,执行一次仿真要耗费的时间依赖于很多因素,包括模型的复杂程度、解法器及其步长的选择、计算机时钟的速度等等。
仿真精度的定义(对于变步长模式):
Relativetolerance(相对误差):
它是指误差相对于状态的值,是一个百分比,缺省值为1e-3,表示状态的计算值要精确到0.1%。
Absolutetolerance(绝对误差):
表示误差值的门限,或者是说在状态值为零的情况下,可以接受的误差。
如果它被设成了auto,那么simulink为每一个状态设置初始绝对误差为1e-6。
自定义功能模块有两种方法
一种方法是采用Subsystem功能模块,利用其编辑区设计组合新的功能模块;另一种方法是将现有的多个功能模块组合起来,形成新的功能模块。
自定义功能模块的封装
a)disp(‘text’)可以在功能模块上显示设定的文字内容。
disp(‘text1\ntext2’)分行显示文字text1和text2
b)plot([x1x2…xn],[y1y2…yn])指令会在功能模块上画出由[x1y1]经[x2y2]经[x3y3]…直到[xn,yn]为止的直线。
功能模块的左下角会根据目前的坐标刻度被正规化为[0,0],右上角则会依据目前的坐标刻度被正规化为[1,1]。
c)dpoly(num,den):
按s次数的降幂排序,在功能模块上显示连续的传递函数。
d)dpoly(num,den,’z’):
按z次数的降幂排序,在功能模块上显示离散的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 复习 提纲