matlab常用函数汇总doc.docx
《matlab常用函数汇总doc.docx》由会员分享,可在线阅读,更多相关《matlab常用函数汇总doc.docx(13页珍藏版)》请在冰豆网上搜索。
![matlab常用函数汇总doc.docx](https://file1.bdocx.com/fileroot1/2022-12/12/8a7c3f77-d781-49b9-9863-dfa7d4cb1505/8a7c3f77-d781-49b9-9863-dfa7d4cb15051.gif)
matlab常用函数汇总doc
matlab常用函数汇总
MATLAB总结
(一)MATLAB常用函数
1、特殊变量与常数
ans
计算结果的变量名
computer
确定运行的计算机
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
向着无穷大舍入
complex
建立一个复数
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条形图
comet3
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向左移一个单词
HomeCtrl+a光标移到行首
EndCtrl+e光标移到行尾
EscCtrl+u清除一行
DelCtrl+d清除光标后字符
BackspaceCtrl+h清除光标前字符
Ctrl+k清除光标至行尾字
Ctrl+c中断程序运行
(三)Matlab运行加速
1)性能加速
a、采用如下数据类型:
logical、char、int、uint、double;
b、数据维数不超过3;
c、for循环范围内只采用标量值,只调用内建函数。
if、elseif、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:
输入信号微分
State-Space:
线性状态空间系统模型
Transfer-Fcn:
线性传递函数模型
Zero-Pole:
以零极点表示的传递函数模型
Memory:
存储上一时刻的状态值
TransportDelay:
输入信号延时一个固定时间再输出
VariableTransportDelay:
输入信号延时一个可变时间再输出
离散模块(Discrete)discrete.mdl
Discrete-timeIntegrator:
离散时间积分器
DiscreteFilter:
IIR与FIR滤波器
DiscreteState-Space:
离散状态空间系统模型
DiscreteTransfer-Fcn:
离散传递函数模型
DiscreteZero-Pole:
以零极点表示的离散传递函数模型
First-OrderHold:
一阶采样和保持器
Zero-OrderHold:
零阶采样和保持器
UnitDelay:
一个采样周期的延时
函数和平台模块(Function&Tables)function.mdl
Fcn:
用自定义的函数(表达式)进行运算
MATLABFcn:
利用matlab的现有函数进行运算
S-Function:
调用自编的S函数的程序进行运算
Look-UpTable:
建立输入信号的查询表(线性峰值匹配)
Look-UpTable(2-D):
建立两个输入信号的查询表(线性峰值匹配)
数学模块(Math)math.mdl
Sum:
加减运算
Product:
乘运算
DotProduct:
点乘运算
Gain:
比例运算
MathFunction:
包括指数函数、对数函数、求平方、开根号等常用数学函数
TrigonometricFunction:
三角函数,包括正弦、余弦、正切等
MinMax:
最值运算
Abs:
取绝对值
Sign:
符号函数
LogicalOperator:
逻辑运算
RelationalOperator:
关系运算
ComplextoMagnitude-Angle:
由复数输入转为幅值和相角输出
Magnitude-AngletoComplex:
由幅值和相角输入合成复数输出
ComplextoReal-Imag:
由复数输入转为实部和虚部输出
Real-ImagtoComplex:
由实部和虚部输入合成复数输出
非线性模块(Nonlinear)nonlinear.mdl
Saturation:
饱和输出,让输出超过某一值时能够饱和。
Relay:
滞环比较器,限制输出值在某一范围内变化。
Switch:
开关选择,当第二个输入端大于临界值时,输出由第一个输入端而来,否则输出由第三个输入端而来。
ManualSwitch:
手动选择开关
信号和系统模块(Signal&Systems)sigsys.mdl
In1:
输入端。
Out1:
输出端。
Mux:
将多个单一输入转化为一个复合输出。
Demux:
将一个复合输入转化为多个单一输出。
Ground:
连接到没有连接到的输入端。
Terminator:
连接到没有连接到的输出端。
SubSystem:
建立新的封装(Mask)功能模块
接收器模块(Sinks)sinks.mdl
Scope:
示波器。
XYGraph:
显示二维图形。
ToWorkspace:
将输出写入MATLAB的工作空间。
ToFile(.mat):
将输出写入数据文件。
输入源模块(Sources)sources.mdl
Constant:
常数信号。
Clock:
时钟信号。
FromWorkspace:
来自MATLAB的工作空间。
FromFile(.mat):
来自数据文件。
PulseGenerator:
脉冲发生器。
RepeatingSequence:
重复信号。
SignalGenerator:
信号发生器,可以产生正弦、方波、锯齿波及随意波。
SineWave:
正弦波信号。
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库信号源库(无输入,至少一个输出)
SineWave:
产生幅值、频率可设置的正弦波信号。
Step:
产生幅值、阶跃时间可设置的阶跃信号。
Sinks库显示和写模块输出
Display:
数字表,显示指定模块的输出数值
XYGraph:
用同一图形窗口,显示X-Y坐标的图形(需现在参数对话框中设置每个坐标的变化范围)。
Scope:
示波器。
显示在仿真过程中产生的信号波形。
Continuous库包含描述线性函数的模块
Derivative:
微分环节。
其输出为其输入信号的微分。
Integrator:
积分环节。
其输出为其输入信号的积分。
TransferFcn:
分子分母为多项式形式的传递函数
Zero-Poles:
零极点增益形式的传递函数。
Math库包含描述一般数学函数的模块。
Add
Sign:
符号函数。
输出为输入信号的符号
Mathfunction:
实现一个数学函数。
Signals&Systems库
Demux:
信号分路器。
将混路器输出的信号依照原来的构成方法分解成多路信号。
Mux:
信号汇总器。
将多路信号依照向量的形式混合成一路信号。
Simulink环境下的仿真运行
仿真参数对话框
Solver页
设置仿真开始和终止时间
Solveroptions(仿真算法选择):
分为定步长算法和变步长算法
离散系统一般默认选择定步长算法,在实时控制中则必须选用定步长算法
变步长算法,对连续系统仿真一般选择ode45,步长范围用auto
ErrorTolerance(误差限度):
算法的误差是指当前状态值与当前状态估计值的误差,分为Relativetolerance(相对限度)和Absolutetolerance(绝对限度),通常可选auto。