MATLAB笔记
- 格式:pdf
- 大小:347.56 KB
- 文档页数:13
第一章:基础
命令行功能键
↑,ctrl-P:重新调出上一行
↓,ctrl-N:重新调出下一行
←,ctrl-B:光标左移一个字符
→,ctrl-F:光标右移一个字符
HOME,ctrl-A:光标移至行首
END,ctrl-E:光标移至行尾
ESC:清除命令行
DEL,ctrl-D:删除光标处字符
Ctrl-K:删除至行尾
····获取工作空间信息
who:显示工作空间保存的变量名
whos显示工作空间中各变量的属性(如大小、元素个数、所占字节、元
素精度。)
····帮助命令
help:不带任何参数,显示MATLAB的目录
help目录名:显示出指定目录中的所有命令及函数,如helplang将列出与
MATLAB编程语言有关的命令及函数;helpmatfun将列出与树脂线性代数有关的所有矩阵函
数。
Help命令名/函数名/符号:显示出有关指定命令/函数/符号的相关信息,包括命令格式及
注意事项。如输入:helpeig将显示出计算矩阵特征值和特征向量的函数eig的说明:
;
透出MATLAB环境
一、同步处理
使用感叹号(!)命令可以透出MATLAB环境,直接执行Windows或者DOS命令。
格式:!命令
这个命令允许在MATLAB环境下执行DOS或者Windows命令,同时会自动建立一个新的窗口,
例如:
!dir
则可列出当前目录下的文件清单。
二、后台处理
格式:!命令&
这个命令不需等待命令执行结束,就可以返回到MATLAB,也就是将指定的命令作为后台程
序进行执行,例如:!natepab&
将启动Notepab(记事本)作为一个新窗口,同时可在MATLAB命令窗口中继续执行MATLAB命
令
三、图标化后台处理
格式:!命令!这是后台命令只显示一图标,而不显示新的窗口。利用!或者!command可
打开DOS命令窗口,然后可执行各种DOS命令。
ALT-PrintScreen键,将图形复制到剪切板,然后激活其他应用程序,选择EDIT中的Paste,
就可在应用程序中得到MATLAB的图形。
小的M文件第一行为:function参数=函数名(参数)
函数名与文件名同名(文件名后最为.m)。{行末以;结束就表示该行结果不显示;行首以%
开头则表示该行为说明行}
基础知识
=
Load或者fread命令可以读取MATLAB早期版本所产生的矩阵,也可以读取其他应用程序产生的数据(矩阵)见“磁盘文件”内容
当矩阵为复数时候,借助于i或者j,复数中间不允许使用空格,1_+5i将被认为是1和+5i
两个数。这一点对实数也适用,如在e符号前加空格也是错误的.
MATLAB语句与变量变量=表达式[;]
简化为:
表达式[;]%如果省略变量名和“=”,则MATLAB自动产生一个名为ans的变量,如1900/81
结果为:ans=23.4568
Ans:没有变量名时,系统默认变量名
eps:决定诸如奇异性和秩时,作为一个容许误差,如eps=,
pi:即是π可由4*atan(1)计算得到,也可以由imag(log(-1))得到3.1416
Inf:表示无穷大,1/0产生
NaN:表示不定值,由0/0或者Inf/Inf运算产生。第二章:基本操作命令
①矩阵运算:所有参与运算的数都被看做为矩阵,数为1×1矩阵,向量为1×n或者
n×1矩阵
符号’表示矩阵的转置。对复数矩阵,符号’完成共轭转置。如果要完成非共轭转置则应使
用“.”或者conj(z’).
矩阵与标量进行加减运算时,矩阵中的每个元素都与标量进行运算。
两矩阵乘法和矩阵的数乘(标量)跟数学上的约定是一致地
向量内积,维数相同的两个向量可以计算其内积
MATLAB没有专门给出计算向量叉乘(矢量积)的运算符号,但可以很容易建立一个M文件
来进行计算
矩阵的除法:左除(\)和右除(/),如果a为一个非奇异矩阵,则a\b和b/a可通过a
的逆矩阵与b阵得到:
a\b=inv(a)*b
b/a=b*inv(a)
矩阵的乘方:运算符号为^,(1)当a为方阵,p为大于1的整数,a^p为a的p次方;
(2)当a为方阵,p为非整数,a^p涉及到a的特征向量v和特征值矩阵d,即有
a^p=v*d.^p/v;
(3)当a为标量而p为矩阵时,a^p为计算标量的矩阵幂;
(4)当a和p均为矩阵时,不能计算,产生一个出错信息.
矩阵的超越函数:超越数学函数可以在函数名后加上m构成,例如
expm(a)、sqrtm(a)、logm(a)分别为矩阵指数、开方、对数函数。
poly特征多项式
det行列式值
trace迹
kronKronecker张量积
②数组运算:元素队元素的算术运算,不同于通常的矩阵运算。数组的加减等同于矩
阵的加减运算,因此+-既表示矩阵运算又表示数组运算。在MATLAB中,在运算符号前面加上
句号(.)就表示数组运算!.*表示数组的乘法运算,若a和b具有相同的维数,则a.*b
为a和b中对应元素的简单乘积。符号./或者.\表示数组除法运算,而且这两种运算都是对应元素相除,这与矩阵的左除、右除的含义不同。
数组的乘方:MATLAB中.^表示数组的乘方,有以下几种情况:
③关系运算:MATLAB提供了6个关系运算符,用于对相同维数的两个矩阵进行比较。
﹤小于﹤﹦小于等于﹥大于﹥﹦大于等于﹦﹦等于~﹦不等于
MATLAB对矩阵中对应元素进行比较,如果关系成立则为1,否则为0,结果为由0和1组成的矩阵。例如:
find函数:在矩阵中查找满足一定条件的数据,返回向量中符合条件的元素的下标;
例如:
>>y=[1,2,3,6,9,8];>>find(y>3)
ans=
456
isnan函数:用来检测是否含有NaN(非数值NaN表示不定值,由0/0或者Inf/Inf运算产生)。
关系式x=NaN永远返回NaN。由于IEEE算法规则,任何带有NaN的运算,其结果均为NaN。
isnan(x)=;
finite函数:该函数用来检测元素数值是否有界。finite(x)=;
④逻辑运算:逻辑与&逻辑或∣逻辑非~他们都是元素对元素的操作。每个非零元
素都当做1处理。结果由1和0组成的矩阵。
a,b为为同维数的矩阵,c=a&b,
c=a&b,c(i,j)=
c=ab,c(i,j)=
c=~a,c(i,j)=
与逻辑运算有关的函数:
any函数:该函数返回值为标量。如c=any(x),则
c=
all函数:当自变量为向量时,函数值为标量。如c=all(x),则c=
在MATLAB中,与关系函数和逻辑函数有关的函数有:
any:逻辑条件
all:逻辑条件
find:查找指定逻辑值的数组下表
exist:检测变量是否存在
isnan:检测NaN
isinf:检测无穷大量
finite:检测有限值变量
isempty:检测空矩阵isstr:检测字符串变量
isglobal:检测全局变量
issparse:检测稀疏矩阵
⑤数学函数:
三角函数
sin正弦
cos余弦
tan正切
asin反正弦
acos反余弦
atan反正切
atan2四象限反正切sinh双曲正弦
cosh双曲余弦
tanh双曲正切
asinh反双曲正弦
acosh反双曲余弦
atanh反双曲正切
基本数学函数:
abs绝对值或复数模
angle相角sqrt开平方
real实部imag虚部
conj复数共轭
round四舍五入到最近的整数
fix朝零方向取整
floor朝负无穷方向取整
ceil朝正无穷方向取整
sign符号函数rem取余
gcd最大公约数
lcm最小公倍数
exp以e为底的指数
log自然对数
log10以10为底的对数
特殊函数:
Bessel贝塞尔函数
betaβ类函数
gammaγ函数
rat有理逼近erf误差函数
erfinv逆误差函数
ellipk完全椭圆积分
ellipj雅克比椭圆函数
⑥向量和矩阵的操作
向量产生:
格式为n:s:m
表示从n到m,步长为s(缺省为1,可正,可负,也可以是小数)的一系列值。
两个产生向量的函数:
linespace(n,m,k):产生一个从n到m等间隔的线性增量的向量,其点数为k
logspace(n,m,k):产生一个等对数增量的向量,从n到m,在对数轴上等间隔的k个点。
下标:用下标访问矩阵的元素。如果下标位置只有一个:号,则表示取对应的所有列或者
行。如:
在赋值语句的两边,用:可以获得更有效的结果。如:a(:,[3510])=b(:,1:3)
表示用b矩阵的前三列代替a矩阵中的第3、5、10列。
一般情况a(v,w)表示取出a中行下标v和列下标w所对应的元素,构成新矩阵。如a(:,n:-1:1)
表示a矩阵中取n到1负增长的列的元素,组成一个新矩阵,行数仍为a矩阵的行数,列数
为n。a(:)是一种特殊用法,当他位于赋值语句的右边时,表示将a中的所有元素展开成一个长的
列向量。如果a(:)位于赋值语句的左边,则重新建立一个与原来的a矩阵相同维数的新矩
阵,其元素由右边的元素代替。
在下标中使用0-1向量:a为m×n矩阵,I为维数为m的0-1向量,则a(I,:)产生
一个由i中非零元素所对应的a中行元素构成的子矩阵。
>>a=[123;456;789];
>>I=[101]';
>>a(I,:)
???Subscriptindicesmusteitherberealpositiveintegersorlogicals.
空矩阵:语句x=[]分配了一个0×0的矩阵x,这与删除矩阵clearx是截然不同的。
空矩阵时存在的且大小为0.利用exist命令可检测是否存在空矩阵,isempty可以检测一
个矩阵是不是空矩阵。
如果n<1,则1:n中未含任何元素。因此,x=[1;n]将产生一个空向量,也可通过给指定矩
阵的行列赋以空矩阵来删除指定的行列。如:a(:,[24])=[]表示删除a中第二和第四列
针对空矩阵应用某些矩阵函数,可返回一个数学上可能合理的值,prod、det、sun可分别
返回1、1、0.
特殊矩阵:MATLAB中有一组函数可产生线性代数和信号处理中常见的特殊矩阵;
compan友阵
diag对角阵
gallery测试矩阵
hadamardhadamard矩阵
hankelhankel矩阵
hilbhilbert矩阵invhilb逆hilbert矩阵
kronkronecker张量积
pascalpascal三角阵
toeplitztoeplitz矩阵
vandervandermonde矩阵