MATLAB重点归纳.docx
- 文档编号:28755064
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:24
- 大小:123.77KB
MATLAB重点归纳.docx
《MATLAB重点归纳.docx》由会员分享,可在线阅读,更多相关《MATLAB重点归纳.docx(24页珍藏版)》请在冰豆网上搜索。
MATLAB重点归纳
MATLAB重点归纳
第1章MATLABR2010a环境
1、工作空间窗口、命令窗口、历史命令窗口、开始按钮
2、>>所在行可输入命令;没有>>所在行显示结果
3、MATLAB常用标点符号的功能(9页)
4、cd设置当前目录。
eg:
要设置当前目录为“C:
\MYDIR”:
>>cdC:
\MYDIR
saveFileName变量1变量2…参数%将变量保存到文件中
5、saveFileName1%将变量保存到文件中
saveFileName2ab%将变量a,b保存到文件中
saveFileName3ab–append%将变量a,b添加到文件中
6、loadFileName变量1变量2…%从数据文件中取出变量存放到工作空间
loadFileName1%把文件中的全部变量装入内存
loadFileName2ab%把文件中的a,b变量装入内存
7、who查阅MATLAB内存变量名
8、whos查阅MATLAB内存变量变量名、大小、类型和字节数
9、clear删除工作空间中的变量
10、i=exist(‘X’)查询工作空间中是否存在‘X’变量
i=1表示存在一个变量名为‘X’的变量
i=2表示存在一个名为‘’的文件
i=3表示存在一个名为‘’的文件
i=4表示存在一个名为‘’的文件
i=5表示存在一个变量名为‘X’的内部函数
i=0表示不存在以上变量和文件
11、path%列出MATLAB的搜索路径
Path(path,’C:
\MYDIR’)%在MATLAB的搜索路径的末尾添加新目录C:
\MYDIR
12、what列出当前目录下的M、MAT、MEX文件清单
13、dir%列出当前目录下的文件和子目录清单
dir目录名%列出指定目录下的文件和子目录清单
14、type文件名%显示指定M文件的内容
Type%显示文件的注释内容
15、which%指出M、MAT、MEX文件、工作空间变量、内置函数或Simulink模型所在目录
16、matlabroot%返回安装MATLAB的根目录
第2章MATLAB数值计算
1、各种整数数据类型的范围和类型转换函数表(30页)
2、>>a=5;
>>b=0;
>>c=67;
>>u1=uint8(a)%转换成无符号整型
u1=
5
>>s1=char(c)%转换成字符型为字母C
s1=
C
>>li=logical(b)%转化成逻辑型为false
li=
0
3、MATLAB中用i,j表示叙述的单位
Z=a+b*i或z=r*exp(i*θ)
a=real(z)%计算实部
a=image(z)%计算虚部
a=abs(z)%计算幅值
4、变量的命名规则:
1)变量名区分字母的大小写;
2)变量名不能超过63个字符;
3)变量名必须以字母开头,组成可以是任意字母、数字或者下划线;
4)关键字不能作为变量名
5、特殊变量(33页)
6、矩阵输入:
矩阵元素用[]括住,行内用逗号或空格隔开,行与行用分号或回车隔开
7、通过语句生成矩阵
1)from:
step:
tofrom:
to
From,step,to分别表示开始值、步长和结束值。
Step省略时默认为1。
当step<0而from >>x=3: -1: 0 x= 3210 2)使用linspace和logspace函数生成向量 Linspace是用来生成线性等分向量,直接给出元素的个数从而得出各个元素的值 linspace(a,b,n)3个参数分别表示开始值,结束值和元素个数,生成a,b之间线性分布的n个元素的行向量,n如果省略则默认值是100. logspace用来生成对数等分向量logspace(a,b,n)生成从 到 之间按对数等分的n个元素的行向量,n如果省略则默认50 >>x1=linspace(0,2*pi,5) x1= 0 >>x2=logspace(0,2,3) x2= 110100 3)由函数产生特殊矩阵 函数名 功能 例子 输入 结果 Zeros(m,n) 产生m*n的全0矩阵 Zeros(2,3) 000 000 Ones(m,n) 产生m*n的全1矩阵 ones(2,3) 111 111 rand(m,n) 产生均匀分布的随机矩阵, 元素取值范围为~ rand(2,3) randn(m,n) 产生正态分布的随机矩阵 randn(2,3) Magic(N) 产生N阶魔方矩阵(矩阵 的行、列和对角线上的 元素的和相等) Magic(3) 816 357 492 eye(m,n) 产生m*n的单位矩阵 Eye(3) 100 010 001 true(m,n) false(m,n) 产生m*n的逻辑矩阵, 全为ture 产生m*n的逻辑矩阵, 全为false True(3) 111 111 111 当zeros,ones,rand,randn,eye函数中只有一个参数n时,则为n*n的方阵 >>t=true(3) t= 111 111 111 >>t(1: 2,3)=false(2,1)%1,2行的第2列改为false t= 110 110 111 8、矩阵的下标 1)全下标方式 A=[1,2;3,4;5,6]A(1,2)=2A(1,2)=7A=[1,7;3,4;5,6] 2)单下标方式: 把矩阵的所有列按照先左后右的次序连接成“一维长列”,然后对元素位置进行编号,m*n矩阵的单下标s=(j-1)/8m+i 9、子矩阵块的产生方式 1)全下标方式: (以3*3矩阵为例) a([1,3],[2,3])表示取行数为1,3,列数为2,3的元素构成子矩阵 a(1: 3,2: 3)取行数1~3,列数2~3的元素构成子矩阵 a(: ;3)取所有的行数,列数为3的元素构成子矩阵 a=(1: 3,end)表示取行数1~3,列数为3的元素构成矩阵,end表示某一位数中的最大值,即3 2)用单下标方式: a([1,3;2,6])表示取单下标为1,3,2,6的元素构成子矩阵 3)逻辑矩阵: a(l1,l2)表示子矩阵时,l1,l2为逻辑向量,l1,l2的元素为0则不取该位置元素,反之则取该位置元素。 >>a=[1,2,3;4,5,6;7,8,9]; >>l1=logical([101]); >>l2=logical([110]); >>a(l1,l2) ans= 12 78 10、矩阵的赋值: 全下标方式,单下标方式,全元素方式 eg: 全元素方式: >>a=[12;34;56] a= 12 34 56 >>b=[123;456] b= 123 456 >>a(: )=b%按单下标方式给a赋值 a= 15 43 26 11、矩阵元素的删除操作: 赋值为空矩阵[] A(: 3)删除1列元素;a (1)=[],按单下标方式删除1个元素,则矩阵变为行向量 12、生成大矩阵[a;a] 13、矩阵和数组运算a=[123;456;789] 函数名 功能 det(X) 计算方阵行列式 rank(X) 求矩阵的秩,得出行列式不为0的最大方阵边长 inv(X) 求矩阵的逆,当方阵X的dit(X)不等于0,逆阵才存在,相乘为单位矩阵 diag(X) 产生X矩阵的对角阵 13、矩阵的翻转(常用矩阵翻转的函数功能)a=[120;040;569] 函数名 功能 例子 输入 结果 triu(X) 产生X矩阵的上三角矩阵,其余元素补0 triu(a) 120 040 009 tril(X) 产生X矩阵的下三角矩阵,其余元素补0 tril(a) 100 040 569 flipud(X) 使矩阵X沿水平轴上下翻转 flipud(a) 569 040 120 fliplr(X) 使矩阵X沿垂直轴左右翻转 fliplr(a) 021 040 965 15、矩阵和数组的算术运算 X=A\B表示方程A*X=B的解 X=A/B表示方程X*A=B的解 数组的乘法为.*除法运算有.\和./,表示数组相应元素相乘除 矩阵乘方A^B,数组乘方A.^B 16、矩阵和数组的转置 A’表示矩阵A的转置,若A为复数矩阵,则为共轭转置 A.’表示数组A的转置,如果数组A为复数数组,则不是共轭转置 17、数组的基本函数 函数名 含义 函数名 含义 abs 绝对值或者复数模 Mod 模除求余 Sqrt 平方根 exp 自然指数 Real 实部 Log 自然对数 Imag 虚部 Log10 以10为底的对数 conj 复数共轭 18、矩阵和数组运算的对比表(52页) 19、关系操作和逻辑操作 1)MATLAB常用的关系操作符有<,<=,>,>=,==,~=(不等于) ①如果用来比较的2个变量都是标量,则结果为真 (1)或假(0) ②如果用来比较的都是数组,则大小必须相同,结果也是同样大小的数组,数组的元素为0或1 ③如果用来比较的是1个数组和1个标量,则把数组的每个元素分别于标量比较,结果为同样大小相同的数组,数组的元素为0或1 ④关系操作符<,<=,>,>=仅对参加比较的变量的实部进行比较,而,==,~=可同时对实部和虚部进行比较 2)逻辑运算与&或|非~异或xor ①非0元素表示真 (1),0元素表示假(0),逻辑运算的结果为0或1 ②如果用来逻辑运算的2个变量都是标量,则结果为0、1的标量 ③如果用来逻辑运算的2个变量都是数组,则必须大小相同,结果为同样大小相同的数组 ④先决与&&,先决或|| 20、常用的关系逻辑函数(54页) 21、在MATLAB中各种运算符的优先级: '(矩阵转置)、^(矩阵幂)和.'(数组转置)、.^(数组幂) ~(逻辑非) *(乘)、/(左除)、\(右除)和.*(点乘)、./(点左除)、.\(点右除) +、-(加减) : (冒号) <、<=、>、>=、~= &(逻辑与) |(逻辑或) &&(先决与) ||(先决或) 22、矩阵的大小size(a) 返回行数或列数的最大值length(p)等价于max(size(p)) 23、多项式 1)多项式p1(x)=x3+21x2+20x可以表示为: p1=[121200]%常数项为0,按幂的降序排列。 最后一个元素一定是表示常数项, 如果无常数项,则应该令该元素为0 2)多项式求值polyval(p,s)计算多项式在给定变量时的值。 说明: p为多项式,s为给定矩阵。 p1=[121200]; polyval(p1,2)%计算x=2时多项式的值 x=0: : 3; polyval(p1,x)%计算x为向量时多项式的值 3)多项式求根r=roots(p)p为多项式,r为计算的多项式的根,以列向量形式保存 P=poly(r)根据多项式的根计算多项式的系数 4)特征多项式P=poly(s)s必须是方阵,p为特征多项式 5)部分分式展开[r,p,k]=residue(b,a) 6)多项式的乘法和除法 多项式乘法p=conv(pl,p2),p是多项式p1和p2的乘积多项式。 多项式除法,[q,r]=deconv(pl,p2): 多项式p1被p2除的商为多项式q,余子式是r 7)多项式的微分和积分 p=polyder(p1): 多项式p1的微分为多项式p。 没有专门积分函数,可以用[p./length(p): -1: 1,k]的方法来完成积分,k为常数 例: 求多项式的微分和积分。 p1=[121200] p4=polyder(p1)%多项式微分 s=length(p4): -1: 1 p1=[p4./s,0]%多项式积分,常数k=0 8)多项式的拟合和插值 插值运算: 根据数据点的规律,找到一个多项式表达式可以连接两个点,插并得出相邻数据点之间的数值。 ①一维插值 yi=interp1(x,y,xi,’method’): 一维插值是指对一个自变量的插值,interp1函数是用来进行一维插值的。 说明: x、y为行向量;xi是插值范围内任意点的x坐标,yi则是插值运算后的对应y坐标;method是插值函数的类型,“linear”为线性插值(默认),“nearest”为用最接近的相邻点插值,“spline”为三次样条插值,“cubic”为三次插值。 24、数据分析 1)原则 ①如果输入的是向量,则按整个向量进行运算 ②如果输入的是矩阵,则按列进行运算 2)MATLAB数据统计分析函数(75页)注意max(x)和max(x(: ))的差别 3)常用的差分和积分函数(76页) 4)卷积和快速傅里叶变换 conv(x,y)计算向量的卷积(若x是输入信号,y是线性系统的脉冲过渡函数,则X,Y的卷积为系统的输出信号) [q,r]=deconv(x,y)解卷积运算x=conv(y,q)+r MATLAB软件的序列下标从1开始而不是0 X=fft(x,N)对离散序列进行离散傅里叶变换 X=ifft(x,N)对离散序列进行离散傅里叶逆变换 x可以是向量,矩阵,多维数组,N为输入变量x的序列长度,可省略。 如果x的长度小于N,则会自动补零;如果x的长度大于N,则会自动截断;当N取2的整数幂时,傅立叶变换的计算速度最快。 一般情况下,fft求出的函数为复数,可用abs及angle分别求其幅值和相位。 第3章MATLAB符号计算 1、创建符号常量sym(‘常量’) sym(常量,参数)%把常量按某种格式转换为符号常量 参数可选为‘d’(十进制)、‘f’(浮点)、‘e’(带有机器浮点误差的有理值)或‘r’(最接近的有理数值)四种格式,也可省略(默认为'r')。 2、MATLAB的数学计算: 包括数值计算和符号计算 数值计算: 不允许使用未赋值的变量 符号计算: 可以使用未赋值的符号变量进行运算 3、创建数值常量和符号常量 >>a=sym('sin (2)')%创建符号常量,注意和>>a=sin (2)的区别 a=sin (2) >>a1=2*sqrt(5)+pi%创建数值常量 a1= >>a2=sym('2*sqrt(5)+pi')%创建符号常量 a2=2*sqrt(5)+pi >>a4=sym(2*sqrt(5)+pi,'d')%按最接近的十进制浮点数表示符号常量 a4= >>a5='2*sqrt(5)+pi'%字符串常量,注意和第3条命令的执行结果比较 a5=2*sqrt(5)+pi 4、创建符号变量sym(‘变量’,参数)%把变量定义位符号对象 参数用来限定符号变量的数学特性: ‘positive’表示为正、实符号变量,‘real’为实符号变量,‘unreal’为非实符号变量 5、创建符号表达式sym(‘表达式’) 6、创建多个符号变量和符号表达式 Syms(‘arg1’,’arg2’,…,参数) Symsarg2arg2…,参数 7、创建符号矩阵 >>A=sym('[a,b;c,d]')>>symsabcd A=>>A=[a,b;c,d] [a,b]A= [c,d][a,b] [c,d] 8、符号表达式的代数运算 1)算术和关系运算符 (1)算术运算符 “+”,“-”,“*”,“\”,“/”,“^”分别实现符号矩阵的运算。 “.*”,“./”,“.\”,“.^”分别实现符号数组的运算。 “′”,“.′”分别实现符号矩阵的共轭转置、非共轭转置。 (2)关系运算符 在符号对象的比较中,没有“大于”、“大于等于”、“小于”、“小于等于”的概念,而只有是否“等于”的概念(“==”、“~=”),为真时,用1表示;为假时,用0表示 2)、函数运算 (1)三角(反三角)函数和双曲函数 sin、cos、tan asin、acos、atan sinh、cosh、tanh (2)指数和对数函数 sqrt、exp、expm 自然对数log(表示ln),无log2和log10 (3)复数函数 conj、real、imag、abs 无angle函数 (4)矩阵代数命令 diag,triu,tril,inv,det,rank,poly,eig 9、符号表达式中自由变量的确定(重要) 1)小写字母i,j不能作为自由变量 2)符号表达式中如果有多个符号变量,则按照: 首先选择x作为自由变量;如果没有x则选择在字母顺序中最接近x的字符变量;如果与x相等距离,则在x后面的优先 3)大写字母比所有小写字母都靠后 10、确定自由符号变量: symvar(EXPR) 自动确定符号表达式中的自由符号变量findsym EXPR可以是符号表达式或符号矩阵;n为按顺序得出符号变量的个数。 当n省略时,则不按顺序得出EXPR中所有的符号变量。 >>f=sym('5*v^u-3*w+Y+z') >>findsym(f)%得出所有的符号变量,不按次序 ans=Y,u,v,w,z >>findsym(f,5)%得出所有的符号变量,不按次序 ans=w,z,v,u,Y 11、符号表达式的化简(91页) 1)多项式形式 2)因式形式 3)嵌套形式 多项式化简函数表pretty、collect、expand、horner、factor 函数名 变换前 变换后 备注 pretty x^3-6*x^2+11*x*-6 32 x-6x+11x-6 给出排版形式的输出结果 collect (x-1)*(x-2)*(x-3) x^3-6*x^2+11*x*-6 表示为合并同类项多项式,当有多个符号变量,可指定按某个符号变量来合并,否则按默认的自由变量进行 expand (x-1)*(x-2)*(x-3) x^3-6*x^2+11*x*-6 表示为多项式形式,多项式展开形式 horner x^3-6*x^2+11*x*-6 x*(11*y+x*(x-6))-6 表示为嵌套形式 factor x^3-6*x^2+11*x*-6 (x-3)*(x-1)*(x-2) 表示为因式连乘的形式 collect(f1,’y’)按y变量来变换 simplify函数: 化简函数,对三角函数、对数函数、幂函数等特别有效 >>y=sym('cos(x)^2-sin(x)^2') y= cos(x)^2-sin(x)^2 >>simplify(y) ans= cos(2*x) simple函数: 寻求包含最少数目字符的表达式简化形式 12、符号极限 [记住每一个函数表示什么] >>f=sym('1/x') f= 1/x >>limit(f) ans= NaN%当左右极限不相等时,表达式的极限不存在,为NaN >>limit(f,'x',0,'left') ans= -Inf 用极限方法也可以求函数的倒数 13、符号微分 diff(f)%求f对默认自由变量的一阶微分 diff(f,t)%求f对指定符号变量t的一阶微分 diff(f,n)%求f对默认自由变量的n阶微分 diff(f,t,n)%求f对指定符号变量t的n阶微分 eg: >>f=sym('a*x^2+b*x+c') f= a*x^2+b*x+c >>diff(f)%对默认自由变量x求一阶微分 ans= b+2*a*x >>diff(f,'a')%对符号变量a求一阶微分 ans= x^2 >>diff(f,'x',2)%对符号变量x求二阶微分 ans= 2*a >>diff(f,3)%对默认自由变量x求三阶微分 ans= 0 diff用于符号矩阵时,其结果是对矩阵的每一个元素进行微分计算 eg: symstxy g=[2*yt^2;t*sin(y)exp(x)]%创建符号矩阵 diff(g)%对默认自由变量求一阶微分 diff(g,'t')%对符号变量t求一阶微分 diff(g,'y') diff(g,2)%对默认自由变量求二阶微分 可以使用diff计算向量间元素的差值 eg: >>x1=0: : 2; >>y1=sin(x1) y1= 0 >>diff(y1) ans= 计算出的差值比原来的向量少一列 14、符号积分 int(f,’t’)%求符号变量t的不定积分 int(f,’t’,a,b)%求符号变量t的积分 int(f,’t’,’m’,’n’)%求符号变量t的积分 说明: t为符号变量,当t省略则为默认自由变量;a和b为数值,[a,b]为积分区间;m和n为符号对象,[m,n]为积分区间;与符号微分相比,符号积分复杂得多。 因为函数的积分有时可能不存在,即使存在,也可能限于很多条件,MATLAB无法顺利得出。 当MATLAB不能找到积分时,将给出警告提示。 15、符号方程的求解 1)代数方程 solve(‘eq’,’v’)%求方程关于指定变量的解 solve(‘eq1’,’eq2’,’v1’,’v2’,…)%求方程组关于指定变量的解 说明: eq可以是含等号的符号表达式的方程,也可以是不含等号的符号表达式,但所指的仍是令eq=0的方程;当参数v省略时,为方程中默认的自由变量;其输出结果为结构数组类型。 >>f1=sym('a*x^2+b*x+c')%无等号 f1= a*x^2+b*x+c >>solve(f1) ans= -(b+(b^2-4*a*c)^(1/2))/(2*a) -(b-(b^2-4*a*c)^(1/2))/(2*a) >>f2=sym('sin(x)') f2= sin(x) >>solve(f2,'x') ans= 0%当sinx=0有多个解时,只能得出0附近的有限几个解 计算三元非线性方程组 的解 >>eq1=sym('x^2+2*x+1'); >
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 重点 归纳