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矩阵