资源描述
MATLAB总结
(一)MATLAB常用函数
1、特殊变量与常数
ans
计算结果得变量名
puter
确定运行得计算机
eps
浮点相对精度
Inf
无穷大
I
虚数单位
inputname
输入参数名
NaN
非数
nargin
输入参数个数
nargout
输出参数得数目
pi
圆周率
nargoutchk
有效得输出参数数目
realmax
最大正浮点数
realmin
最小正浮点数
varargin
实际输入 得参量
varargout
实际返回得参量
2、操作符与特殊字符
+
加
减
*
矩阵乘法
、*
数组乘(对应元素相乘)
^
矩阵幂
、^
数组幂(各个元素求幂)
\
左除或反斜杠
/
右除或斜面杠
、/
数组除(对应元素除)
kron
Kronecker张量积
:
冒号
圆括
[]
方括
、
小数点
、、
父目录
、、、
继续
,
逗号(分割多条命令)
;
分号(禁止结果显示)
%
注释
!
感叹号
'
转置或引用
=
赋值
==
相等
<>
不等于
&
逻辑与
|
逻辑或
~
逻辑非
xor
逻辑异或
3、基本数学函数
abs
绝对值与复数模长
acos,acodh
反余弦,反双曲余弦
acot,acoth
反余切,反双曲余切
acsc,acsch
反余割,反双曲余割
angle
相角
asec,asech
反正割,反双曲正割
secant
正切
asin,asinh
反正弦,反双曲正弦
atan,atanh
反正切,双曲正切
tangent
正切
atan2
四象限反正切
ceil
向着无穷大舍入
plex
建立一个复数
conj
复数配对
cos,cosh
余弦,双曲余弦
csc,csch
余切,双曲余切
cot,coth
余切,双曲余切
exp
指数
fix
朝0方向取整
floor
朝负无穷取整
gcd
最大公因数
imag
复数值得虚部
lcm
最小公倍数
log
自然对数
log2
以2为底得对数
log10
常用对数
mod
有符号得求余
nchoosek
二项式系数与全部组合数
real
复数得实部
rem
相除后求余
round
取整为最近得整数
sec,sech
正割,双曲正割
sign
符号数
sin,sinh
正弦,双曲正弦
sqrt
平方根
tan,tanh
正切,双曲正切
4、基本矩阵与矩阵操作
blkding
从输入参量建立块对角矩阵
eye
单位矩阵
linespace
产生线性间隔得向量
logspace
产生对数间隔得向量
numel
元素个数
ones
产生全为1得数组
rand
均匀颁随机数与数组
randn
正态分布随机数与数组
zeros
建立一个全0矩阵
:(colon)
等间隔向量
cat
连接数组
diag
对角矩阵与矩阵对角线
fliplr
从左自右翻转矩阵
flipud
从上到下翻转矩阵
repmat
复制一个数组
reshape
改造矩阵
roy90
矩阵翻转90度
tril
矩阵得下三角
triu
矩阵得上三角
dot
向量点集
cross
向量叉集
ismember
检测一个集合得元素
intersect
向量得交集
setxor
向量异或集
setdiff
向就是得差集
union
向量得并集
5、数值分析与傅立叶变换
cumprod
累积
cumsum
累加
cumtrapz
累计梯形法计算数值微分
factor
质因子
inpolygon
删除多边形区域内得点
max
最大值
mean
数组得均值
mediam
中值
min
最小值
perms
所有可能得转换
polyarea
多边形区域
primes
生成质数列表
prod
数组元素得乘积
rectint
矩形交集区域
sort
按升序排列矩阵元素
sortrows
按升序排列行
std
标准偏差
sum
求与
trapz
梯形数值积分
var
方差
del2
离散拉普拉斯
diff
差值与微分估计
gradient
数值梯度
cov
协方差矩阵
corrcoef
相关系数
conv2
二维卷积
conv
卷积与多项式乘法
filter
IIR或FIR滤波器
deconv
反卷积与多项式除法
filter2
二维数字滤波器
cplxpair
将复数值分类为共轭对
fft
一维得快速傅立叶变换
fft2
二维快速傅立叶变换
fftshift
将FFT得DC分量移到频谱中心
ifft
一维快速反傅立叶变换
ifft2
二维傅立叶反变换
ifftn
多维快速傅立叶变换
ifftshift
反FFT偏移
nextpow2
最靠近得2得幂次
unwrap
校正相位角
6、多项式与插值
conv
卷积与多项式乘法
roots
多项式得根
poly
具有设定根得多项式
polyder
多项式微分
polyeig
多项式得特征根
polyfit
多项式拟合
polyint
解析多项式积分
polyval
多项式求值
polyvalm
矩阵变量多项式求值
residue
部分分式展开
interp1
一维插值
interp2
二维插值
interp3
三维插值
interpft
使用FFT得一维插值
interpn
多维插值
meshgrid
为3维点生成x与y得网格
ndgrid
生成多维函数与插值得数组
pchip
分段3次Hermite插值多项式
ppval
分段多项式得值
spline
3次样条数据插值
7、绘图函数
bar
竖直条图
barh
水平条图
hist
直方图
histc
直方图计数
hold
保持当前图形
loglog
x,y对数坐标图
pie
饼状图
plot
绘二维图
polar
极坐标图
semilogy
y轴对数坐标图
semilogx
x轴对数坐标
subplot
绘制子图
bar3
数值3D竖条图
bar3h
水平3D条形图
et3
3D慧星图
cylinder
圆柱体
fill3
填充得3D多边形
plot3
3维空间绘图
quiver3
3D震动(速度)图
slice
体积薄片图
sphere
球
stem3
绘制离散表面数据
waterfall
绘制瀑布
trisurf
三角表面
clabel
增加轮廓标签到等高线图中
datetick
数据格式标记
grid
加网格线
gtext
用鼠标将文本放在2D图中
legend
图注
plotyy
左右边都绘Y轴
title
标题
xlabel
X轴标签
ylabel
Y轴标签
zlabel
Z轴标签
contour
等高线图
contourc
等高线计算
contourf
填充得等高线图
hidden
网格线消影
meshc
连接网格/等高线
mesh
具有参考轴得3D网格
peaks
具有两个变量得采样函数
surf
3D阴影表面图
surface
建立表面低层对象
surfc
海浪与等高线得结合
surfl
具有光照得3D阴影表面
trimesh
三角网格图
(二)Matlab工作间常用命令:
1、常用得窗口命令
help
启动联机帮助文件显示
which
找出函数与文件所在得目录名
what
列出当前目录下得有关文件
demo
运行MATLAB得演示程序
type
列出M文件
path
设置或查询MATLAB路径
lookfor
对help信息中得关键词查找
2、有关文件及其操作得语句
cd
改变当前得工作目录
dir
列出当前目录得内容
delete
删除文件
getenv
获得环境参数
unix
执行操作系统命令并返回结果
diary
将MATLAB运行得命令存盘
fopen
打开文件
fclose
关闭文件
fread
从文件中读取二进制数据
fwrite
向文件中写二进制数据
fscanf
从文件读取格式化数据
fprintf
将格式化数据写入文件
fgetl
从文件中读行并放弃换行符
fgets
从文件中读行并保持换行符
ferror
查询文件得输入输出得错误信息
feof
检查文件结束标志
fseek
设置文件位置指针
ftell
得到文件位置指针位置
prewind
反绕一个打开得文件
tempname
建立临时得文件名
tempdir
返回已存在得临时目录名
whech
查找指定文件得路径
3、启动与退出得命令
quit,exit
退出MATLAB环境
startup
MATLAB自启动文件
matlabrc
启动主程序
4、管理变量工作空间得命令
who
简要列出工作空间变量名
whos
详细列出工作空间变量名
load
从文件中读入变量
save
列出工作空间中变量存盘
clear
删除内存中得变量与函数
pack
整理工作空间得内存
size
查询矩阵得维数
disp
显示矩阵与文本
length
查询矢量得维数
diary
保存工作空间文本到文件
type
在工作空间查瞧文件内容
clf
清除图形窗口内容
5、对命令窗口控制得常用命令
cedit
设置命令行编辑与回调得参数
clc
清除命令窗口中得显示
home
将光标移动到左上角位置
format
设置输出格式
echo
显示文件中得MATLAB命令
more
控制命令窗口得输出页面
6、此外还有一些常用得命令:
↑ Ctrl+p 调用上一次得命令
↓ Ctrl+n 调用下一行得命令
← Ctrl+b 退后一格
→ Ctrl+f 前移一格
Ctrl + ← Ctrl+r 向右移一个单词
Ctrl + → Ctrl+l 向左移一个单词
Home Ctrl+a 光标移到行首
End Ctrl+e 光标移到行尾
Esc Ctrl+u 清除一行
Del Ctrl+d 清除光标后字符
Backspace Ctrl+h 清除光标前字符
Ctrl+k 清除光标至行尾字
Ctrl+c 中断程序运行
(三)Matlab 运行加速
1) 性能加速
a、 采用如下数据类型:logical、char、int、uint、double;
b、 数据维数不超过3;
c、 for循环范围内只采用标量值,只调用内建函数。if 、else if 、while、swicth得条件测试语句只采用标量;
d、 同一行得命令条数为一条;
e、 命令操作为改变数据类型或者形状(大小,维数);
f、 复数写为:a+bj型;
2)遵守3条准则
a、避免使用循环语句(将循环语句向量化:向量化技术函数有All、diff、ipermute、permute、reshape、squeeze、any、find、logical、prod、shiftdim、sub2ind、cumsum、ind2sub、ndgrid、repmat、sort、sum 等;不得不使用循环语句时,超过2重,循环次数少得在外环);
b、预分配矩阵空间(函数有:zeros、ones、cell、struct、repmat)与采用repmat函数对非double 型预分配空间或对一个变量扩容;
c、优先使用内建函数与function;
3)绝招:采用Mex技术,或者利用matlab提供得工具将程序转化为C语言、Fortran语言
注意:比较向量化与加速器;加速之前采用profiler测试各部分耗时情况。
SIMILINK模块库按功能进行分为以下8类子库:
Continuous(连续模块)
Discrete(离散模块)
Function&Tables(函数与平台模块)
Math(数学模块)
Nonlinear(非线性模块)
Signals&Systems(信号与系统模块)
Sinks(接收器模块)
Sources(输入源模块)
连续模块(Continuous)continuous、mdl
Integrator:输入信号积分
Derivative:输入信号微分
StateSpace:线性状态空间系统模型
TransferFcn:线性传递函数模型
ZeroPole:以零极点表示得传递函数模型
Memory:存储上一时刻得状态值
Transport Delay:输入信号延时一个固定时间再输出
Variable Transport Delay:输入信号延时一个可变时间再输出
离散模块(Discrete) discrete、mdl
Discretetime Integrator:离散时间积分器
Discrete Filter:IIR与FIR滤波器
Discrete StateSpace:离散状态空间系统模型
Discrete TransferFcn:离散传递函数模型
Discrete ZeroPole:以零极点表示得离散传递函数模型
FirstOrder Hold:一阶采样与保持器
ZeroOrder Hold:零阶采样与保持器
Unit Delay:一个采样周期得延时
函数与平台模块(Function&Tables) function、mdl
Fcn:用自定义得函数(表达式)进行运算
MATLABFcn:利用matlab得现有函数进行运算
SFunction:调用自编得S函数得程序进行运算
LookUp Table:建立输入信号得查询表(线性峰值匹配)
LookUp Table(2D):建立两个输入信号得查询表(线性峰值匹配)
数学模块( Math ) math、mdl
Sum:加减运算
Product:乘运算
Dot Product:点乘运算
Gain:比例运算
Math Function:包括指数函数、对数函数、求平方、开根号等常用数学函数
Trigonometric Function:三角函数,包括正弦、余弦、正切等
MinMax:最值运算
Abs:取绝对值
Sign:符号函数
Logical Operator:逻辑运算
Relational Operator:关系运算
plex to MagnitudeAngle:由复数输入转为幅值与相角输出
MagnitudeAngle to plex:由幅值与相角输入合成复数输出
plex to RealImag:由复数输入转为实部与虚部输出
RealImag to plex:由实部与虚部输入合成复数输出
非线性模块( Nonlinear ) nonlinear、mdl
Saturation:饱与输出,让输出超过某一值时能够饱与。
Relay:滞环比较器,限制输出值在某一范围内变化。
Switch:开关选择,当第二个输入端大于临界值时,输出由第一个输入端而来,否则输出由第三个输入端而来。
Manual Switch:手动选择开关
信号与系统模块( Signal&Systems ) sigsys、mdl
In1:输入端。
Out1:输出端。
Mux:将多个单一输入转化为一个复合输出。
Demux:将一个复合输入转化为多个单一输出。
Ground:连接到没有连接到得输入端。
Terminator:连接到没有连接到得输出端。
SubSystem:建立新得封装(Mask)功能模块
接收器模块( Sinks ) sinks、mdl
Scope:示波器。
XY Graph:显示二维图形。
To Workspace:将输出写入MATLAB得工作空间。
To ):将输出写入数据文件。
输入源模块( Sources ) sources、mdl
Constant:常数信号。
Clock:时钟信号。
From Workspace:来自MATLAB得工作空间。
From ):来自数据文件。
Pulse Generator:脉冲发生器。
Repeating Sequence:重复信号。
Signal Generator:信号发生器,可以产生正弦、方波、锯齿波及随意波。
Sine Wave:正弦波信号。
Step:阶跃波信号。
在MATLAB命令窗口下直接运行一个已经存在得simulink模型
[t,x,y]=sim('model',timespan,option,ut)
其中,t为返回得仿真时间向量;x为返回得状态矩阵;y为返回得输出矩阵;model为系统Simulink模型文件名;timespan为仿真时间; option为仿真参数选择项,由simset设置; ut为选择外部产生输入,ut=[T,u1,u2,、、、,un]。
Sources库 信号源库(无输入,至少一个输出)
Sine Wave: 产生幅值、频率可设置得正弦波信号。
Step: 产生幅值、阶跃时间可设置得阶跃信号。
Sinks库 显示与写模块输出
Display: 数字表,显示指定模块得输出数值
XY Graph: 用同一图形窗口,显示XY坐标得图形(需现在参数对话框中设置每个坐标得变化范围)。
Scope: 示波器。显示在仿真过程中产生得信号波形。
Continuous库 包含描述线性函数得模块
Derivative: 微分环节。其输出为其输入信号得微分。
Integrator: 积分环节。其输出为其输入信号得积分。
Transfer Fcn: 分子分母为多项式形式得传递函数
ZeroPoles: 零极点增益形式得传递函数。
Math库 包含描述一般数学函数得模块。
Add
Sign: 符号函数。输出为输入信号得符号
Math function: 实现一个数学函数。
Signals & Systems 库
Demux: 信号分路器。将混路器输出得信号依照原来得构成方法分解成多路信号。
Mux: 信号汇总器。将多路信号依照向量得形式混合成一路信号。
Simulink环境下得仿真运行
仿真参数对话框
Solver页
设置仿真开始与终止时间
Solver options(仿真算法选择):分为定步长算法与变步长算法
离散系统一般默认选择定步长算法,在实时控制中则必须选用定步长算法
变步长算法,对连续系统仿真一般选择ode45,步长范围用auto
Error Tolerance(误差限度):算法得误差就是指当前状态值与当前状态估计值得误差,分为Relative tolerance(相对限度)与Absolute tolerance(绝对限度),通常可选auto。
展开阅读全文