大三下学习-第1章matlab基础知识_第1页
大三下学习-第1章matlab基础知识_第2页
大三下学习-第1章matlab基础知识_第3页
大三下学习-第1章matlab基础知识_第4页
大三下学习-第1章matlab基础知识_第5页
已阅读5页,还剩78页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章

MATLAB基础知识MATLAB是MathWorks公司开发的科学与工程计算软件,它以矩阵运算为基础,把计算、绘图及动态系统仿真等功能有机地融合在一起。同时,它又具有程序设计语言的基本特征。目前,MATLAB在工程计算与数值分析、控制系统设计与仿真、信号处理、图像处理、金融建模设计与分析等学科领域都有着十分广泛的应用。MATLAB简介本章学习目标

了解MATLAB的发展和主要功能。熟悉启动和退出MATLAB的方法。熟悉MATLAB的操作环境。掌握建立矩阵的方法。掌握MATLAB数据对象的特点和基本的运算规则。1.1MATLAB的发展与主要功能——发展MATrixLABoratory(矩阵实验室)1992 MATLAB4.0版1997 MATLAB5.0版2000年10月 MATLAB6.0版2004年7月 MATLAB7.0版2005年9月 MATLAB7.1版随后每年发布两次以年份命名的版本,如:R2006a(MATLAB7.2),R2006b(MATLAB7.3)R2007a(MATLAB7.4),R2007b(MATLAB7.5)R2008a(MATLAB7.6),R2008b(MATLAB7.7),R2010a。1.1MATLAB的发展与主要功能——功能1/5求解线性方程组:(1)数值计算和符号计算功能1.1MATLAB的发展与主要功能——功能2/5在MATLAB命令窗口输入命令:a=[2,3,-1;3,-5,3;6,3,-8];b=[7;8;9];x=inv(a)*b也可以通过符号计算来解此方程:symsx1x2x3[x1,x2,x3]=solve(2*x1+3*x2-x3-7,3*x1-5*x2+3*x3-8,6*x1+3*x2-8*x3-9)分别绘制函数y=300sinx/x和y=x2的曲线x=-20:0.1:20;plot(x,300*sin(x)./x,':',x,x.^2);1.1MATLAB的发展与主要功能——功能3/5(2)绘图功能1.1MATLAB的发展与主要功能——功能4/5MATLAB是解释性语言,程序执行速度较慢,而且不能脱离MATLAB环境而独立运行。MathWorks公司提供了将MATLAB源程序编译为独立于MATLAB集成环境运行的EXE文件以及将MATLAB程序转化为C语言程序的编译器。(3)程序设计语言功能1.1MATLAB的发展与主要功能——功能5/5MATLAB包含两部分:基本部分和各种可选的工具箱。基本部分构成了MATLAB的核心内容,也是使用和构造工具箱的基础。工具箱扩展了MATLAB的功能。功能性工具箱:扩充其符号计算功能、可视建模仿真功能、文字处理功能能;学科性工具箱:专业性强,如控制系统工具箱(ControlSystemToolbox)、信号处理工具箱(SignalProcessingToolbox)、神经网络工具箱(NeuralNetworkToolbox)、最优化工具箱(OptimizationToolbox)(4)扩展功能1.2MATLAB集成开发环境MATLAB集成开发环境包括多个窗口,除MATLAB主窗口外,还有命令窗口(CommandWindow)、工作空间(Workspace)窗口、命令历史(CommandHistory)窗口和当前目录(CurrentDirectory)窗口。这些窗口都可以内嵌在MATLAB主窗口中,组成MATLAB的工作界面。在MATLAB主窗口的左下角,还有一个Start按钮。1.2MATLAB集成开发环境——主窗口主窗口除了嵌入一些子窗口外,还包括菜单栏和工具栏。1.2MATLAB集成开发环境——命令窗口1/4命令窗口(CommandWindow)用于输入命令并显示除图形以外的所有执行结果。一般来说,一个命令行输入一条命令,命令行以回车结束。但一个命令行也可以输入若干条命令,各命令之间以逗号分隔,若前一命令后带有分号,则逗号可以省略。例如:>>x=720,y=86x=720y=86>>x=720;y=86y=861.2MATLAB集成开发环境——命令窗口2/4如果一个命令行很长,一个物理行之内写不下,可以在第1个物理行之后加上3个小黑点并按下回车键,然后接着下一个物理行继续写命令的其他部分。3个小黑点称为续行符,即把下面的物理行看作该行的逻辑继续。例如:>>z=1+1/(1*2)+1/(1*2*3)+1/(1*2*3*4)+…1/(1*2*3*4*5)1.2MATLAB集成开发环境——命令窗口3/4命令行编辑的常用控制键及其功能键名功能键名功能前寻式调回已输入过的命令Home将光标移到当前行首端后寻式调回已输入过的命令End将光标移到当前行末尾在当前行中左移光标Del删除光标右边的字符在当前行中右移光标Backspace删除光标左边的字符PgUp前寻式翻滚一页Esc删除当前行全部内容PgDn后寻式翻滚一页命令窗口常用的控制指令>>dire:\mywork %显示e:\mywork目录下的文件清单>>edite:\mywork\Aviod.m%打开编辑器编辑Aviod.m>>whichAviod.m %显示Aviod.m所在的目录指令含义指令含义cd设置当前工作目录exit/quit退出MATLABclf清除图形窗open打开文件clc清除指令窗中显示的内容md创建目录clear清除内存变量more使显示内容分页显示dir列出指定目录的文件清单type显示M文件的内容edit打开M文件编辑器which指出文件所在目录1.2MATLAB集成开发环境——命令窗口4/4也可利用菜单命令实现1.2MATLAB集成开发环境——工作空间窗口工作空间(Workspace)是MATLAB用于存储各种变量和结果的内存空间。1.2MATLAB集成开发环境——当前目录窗口也称为路径浏览器,对文件进行有效的组织和管理。当前目录(CurrentDirectory)是指MATLAB运行时的工作目录,只有在当前目录或搜索路径下的文件、函数才可以被运行或调用。如果没有特殊指明,数据文件也将存放在当前目录下。1.2MATLAB集成开发环境——历史命令窗口自动保留自安装起所有用过的命令的历史记录,并且还标明了使用时间,从而方便用户查询。而且,通过双击命令可进行历史命令的再运行。1.2MATLAB集成开发环境——Start按钮在MATLAB主窗口左下角有一个Start按钮,提供快速访问MATLAB的各种工具和查阅MATLAB包含的各种资源的命令菜单。1.2MATLAB集成开发环境——搜索路径1/3(1)默认搜索过程MATLAB的文件是通过不同的路径进行组织和管理的。当用户在命令窗口输入一条命令后,MATLAB将按照下列顺序搜索所输入的命令:检查是不是一个变量。检查是不是一个内部函数。检查是否为当前目录下的M文件。检查是否为MATLAB搜索路径中其他目录下的M文件。假设建立了一个变量result,同时在当前目录下建立了一个M文件result.m,如果在命令窗口输入result,在屏幕上显示变量result的值。如果没有建立result变量,则执行result.m文件。1.2MATLAB集成开发环境——搜索路径2/3(2)设置搜索路径——用path命令把用户目录临时纳入搜索路径path(path,‘c:\mydir')——用对话框设置搜索路径在MATLAB的File菜单中选择SetPath命令或在命令窗口执行pathtool命令1.2MATLAB集成开发环境——搜索路径3/3路径添加路径移动删除路径系统将所有搜索路径的信息保存在一个M文件pathdef.m中,通过修改该文件也可以修改搜索路径1.3MATLAB的帮助功能——帮助界面1/2进入MATLAB帮助界面可以通过以下3种方法。●单击MATLAB主窗口工具栏中的Help按钮。●在命令窗口中输入“helpwin”、“helpdesk”或“doc”命令。●选择Help菜单中的“MATLABHelp”选项。1.3MATLAB的帮助功能——帮助界面2/2左边为向导页面,右边为显示页面。Contents:查看帮助的主题;Index:根据指定的关键词进行查找;SearchResult:查找指定的单词;Demos:查看和运行MATLAB的演示程序。1.3MATLAB的帮助功能——帮助命令1/5(1)help命令help命令是查询函数语法的最基本方法,查询信息直接显示在命令窗口。在命令窗口中直接输入help命令将会显示当前帮助系统中所包含的所有项目,即搜索路径中所有的目录名称。help加函数名显示该函数的帮助说明。如helpmagic命令显示magic函数的使用方法与功能:MATLAB命令窗口显示的帮助信息用大写来突出函数名,但在使用函数时,要用小写。1.3MATLAB的帮助功能——帮助命令2/5(2)lookfor命令当用户知道某函数名而不知其用法时,help命令可以帮助用户了解函数的用法。若需要查找一个不知其确切名称的函数名时,可以用lookfor命令根据用户提供的关键字来查询相关的函数。lookfor通过对MATLAB搜索路径中的每个M文件的注释区的第一行进行扫描,一旦发现此行中含有所查询的关键字,则将该函数名及第1行注释全部显示在屏幕上。1.3MATLAB的帮助功能——帮助命令3/5如,输入命令lookforfourier:1.3MATLAB的帮助功能——帮助命令4/51.3MATLAB的帮助功能——帮助命令5/5(3)其他帮助命令命令命令功能demo运行MATLAB演示程序tour运行MATLAB漫游程序doc在帮助浏览器中显示指定函数的参考信息what列出当前目录下的M文件、MEX文件盒MAT文件which显示指定函数或文件的路径helpbrowser打开帮助内的浏览器helpdesk运行HTML格式的帮助面板(helpdesk)helpwin打开帮助内的浏览器exist查找指定变量或函数的存在性web显示指定的网络页面1.3MATLAB的帮助功能——演示系统在帮助窗口中选择演示系统(Demos)选项卡,然后在其中选择相应的演示模块,或者在命令窗口输入“demos”,或者选择主窗口“Help”菜单中的“Demos”子菜单:1.4MATLAB的变量和数据操作——变量与赋值1/81.变量命名在MATLAB7.X中,变量名是以字母开头,后接字母、数字或下画线的字符序列,最多63个字符。例如:x、x_1、xy12在MATLAB中,变量名区分字母的大小写。例如addr、Addr和ADDR表示3个不同的变量。注:MATLAB提供的标准函数名以及命令名必须用小写字母。例如,求矩阵A的逆用inv(A),不能写成Inv(A)/INV(A)。2.赋值语句MATLAB赋值语句有两种格式:(1)变量=表达式;(2)表达式在第1种语句形式下,MATLAB将右边表达式的值赋给左边的变量,而在第2种语句形式下,将表达式的值赋给MATLAB的预定义变量ans。在语句的最后加分号,那么,MATLAB仅仅执行赋值操作,不再显示运算的结果。注释以%开头。1.4MATLAB的变量和数据操作——变量与赋值2/8例:计算表达式的值并显示结果:>>x=sqrt(1+pi);>>y=(exp(x)+log(abs(sin(x)^2-sin(x*x))))/(x-5*i)y=0.5690+1.3980i其中,pi和i都是MATLAB定义的变量,分别代表圆周率π和虚数单位。1.4MATLAB的变量和数据操作——变量与赋值3/8预定义变量含义预定义变量含义ans计算结果的默认赋值变量nargin函数输入参数个数eps机器零阈值nargout函数输出参数个数pi圆周率的近似值realmax最大正实数i,j虚数单位realmin最小正实数Inf,inf无穷大。如I/0的结果lasterr存放最新的错误信息NaN,nan非数。如0/0,inf/inf的结果lastwarn存放最新的警告信息注:在使用时尽量避免对这些变量重新赋值。1.4MATLAB的变量和数据操作——变量与赋值4/8——MATLAB中的预定义变量1.内存变量的显示与删除Who和whos命令显示在MATLAB工作空间中已经驻留的变量名。whos在给出驻留变量名的同时,还给出它们的维数、所占字节数以及变量的类型。>>whoYourvariablesare:Rabcpx>>whosNameSizeBytesClassAttributesR3x124doublea3x372doubleb3x124doublec3x124doublep1x432doublex1x18double1.4MATLAB的变量和数据操作——变量与赋值5/8clear命令删除MATLAB工作空间中的变量。MATLAB工作空间窗口专门用于内存变量的管理。MATLAB工作空间窗口变量编辑器1.4MATLAB的变量和数据操作——变量与赋值6/82.内存变量文件MAT文件是MATLAB保存数据的一种标准格式二进制文件,扩展名是.mat。>>save文件名[变量名表][-append][-ascii]>>load文件名[变量名表][-ascii]

文件名可以带路径,缺省在当前目录下操作。文件名可以不扩展名,命令默认对MAT文件进行操作,文件保存在当前目录下。变量名表中的变量个数不限,变量名之间以空格分隔。当省略变量名时,保存或装入全部变量。

-ascii选项以ASCII格式处理,缺省以二进制处理。

-append选项将变量追加到MAT文件中。1.4MATLAB的变量和数据操作——变量与赋值7/8假定变量a和b存在于MATLAB工作空间中,输入以下命令便可将a和b保存于当前目录的mydata.mat文件中:>>savemydataab把mydata.mat中的内容装入MATLAB工作空间:>>loadmydata1.4MATLAB的变量和数据操作——变量与赋值8/81.4MATLAB的变量和数据操作——数据的输出格式1/3MATLAB用十进制数表示常数,可采用日常记数法和科学记数法。如:3.1415、3+5i是日常计数法表示,1.78029e2、1234e-5i是科学计数法表示。字母e或E表示以10为底的指数。一般情况下,在MATLAB内部每一个数据元素都是用双精度来表示和存储的。数据输出是可以用“format”命令改变输出输出格式:format格式符注:“format”命令只影响数据输出格式,而不影响数据的计算和存储。1.4MATLAB的变量和数据操作——数据的输出格式2/3格式符含义short输出小数点后4位,最多不超过7位有效数字。对于大于1000的数,用5位有效数字的科学记数形式输出long15位有效数字的形式输出shorte5位有效数字的科学记数形式输出longe15位有效数字的科学记数形式输出shortg从short和shorte中自动选择最佳输出方式longg从long和longe中自动选择最佳输出方式rat近似有理数表示hex十六进制表示+正数、负数、零分别用+、-、空格表示bank银行格式,以元、分表示compact输出变量之间没有空行loose输出变量之间有空行1.4MATLAB的变量和数据操作——数据的输出格式3/3例如输入为:x=[4/31.2345e-6]在各种不同的格式符下的输出为:短格式(short):1.33330.0000短格式e方式(shorte):1.333e+001.2345e-06长格式(long):1.333333333333330.00000123450000长格式e方式(longe):1.33333333333333e+0001.23450000000000e-006银行格式(bank):1.330.00十六进制格式(hex):3ff55555555555553eb4b6231abfd271+格式(+):++1.5MATLAB矩阵及其基本运算矩阵是MATLAB的基本处理对象,也是MATLAB的重要特征。MATLAB的大部分运算或命令都是在矩阵运算的意义下执行的,而且这种运算定义在复数域上。MATLAB强大的计算功能以矩阵运算为基础。在MATLAB中,生成矩阵时无需对矩阵的维数和类型进行说明,MATLAB会根据用户所输入的内容进行自动配置。1.5MATLAB矩阵及其基本运算——矩阵的生成1/6(1)直接输入法将矩阵的所有元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔,也可分几行,用回车键代替分号。>>A=[1,2,3;4,5,6;7,8,9]A=123456789矩阵元素也可以是表达式,MATLAB将自动计算结果:>>B=[10,5-sqrt(7),sin(pi/2);7,4*8,abs(-7)]B=10.00002.35421.00007.000032.00007.0000矩阵元素可以是复数:>>B=[1,2+7i,5*sqrt(2)*i;3,2/5,3.5+6i]B=1.00002.0000+7.0000i0+7.0711i3.00000.40003.5000+6.0000i也可以分别建立实部矩阵和虚部矩阵,再合起来构成复数矩阵:>>R=[1,2,3;4,5,6];>>I=[1.1,2.2,3.3;4.4,5.5,6.6];>>ri=R+i*Iri=1.0000+1.1000i2.0000+2.2000i3.0000+3.3000i4.0000+4.4000i5.0000+5.5000i6.0000+6.6000i1.5MATLAB矩阵及其基本运算——矩阵的生成2/61.5MATLAB矩阵及其基本运算——矩阵的生成3/6(2)利用M文件建立矩阵对于比较大且比较复杂的矩阵,可以建立一个M文件。例:利用M文件建立mydata矩阵。(1)启动有关文本编辑程序或MATLAB的M-file编辑器,并输入待建矩阵:mydata=[1.11.21.31.41.51.61.71.81.9;2.12.22.32.42.52.62.72.82.9;3.13.23.33.43.53.63.73.83.9];(2)把输入的内容存盘(设文件名为matfund.m)。(3)在MATLAB命令窗口中输入matfund,即运行该M文件,就会自动建立一个名为mydata的矩阵,可供以后使用。(3)利用数据文件建立矩阵通过load命令,将外部数据文件中的内容调入到工作空间中创建矩阵,外部文件的扩展名为.dat。例如:利用文本编辑器创建一个数据文件test.dat:2468635673251251.5MATLAB矩阵及其基本运算——矩阵的生成4/6在命令窗口输入:>>loadtest.dat>>test运行结果为:test=2468635673251251.5MATLAB矩阵及其基本运算——矩阵的生成5/6(4)利用已建好的矩阵建立更大的矩阵大矩阵可由已建好的小矩阵拼接而成。矩阵的合并就是把两个以上的矩阵连接起来得到一个新矩阵,“[]”符号可以作为矩阵合并操作符,命令格式如下:c=[ab] %将矩阵a和b水平方向合并为cc=[a;b] %将矩阵a和b垂直方向合并为c>>A=[1,2,3;4,5,6;7,8,9];>>B=[11:13;14:16;17:19];>>A=[1,2,3;4,5,6;7,8,9];>>C=[A,B;B,A]C=1231112134561415167891718191112131231415164561718197891.5MATLAB矩阵及其基本运算——矩阵的生成6/6(5)利用Matlab提供的函数来创建一些常用的特殊矩阵,例如对角阵、单位阵和零矩阵zeros(m,n)——m×n的零矩阵,全部元素都为0ones(m,n)——全部元素都为1的m×n的矩阵rand(m,n)——随机矩阵eye(m,n)——单位矩阵magic(n)——n维magic方阵空阵[]——matlab允许输入空阵,当一项操作无结果时,返回空阵。1.5MATLAB矩阵及其基本运算——冒号表达式1/2冒号可以产生行向量,其调用格式为:a:b:c产生一个由a开始到c结束,以步长b自增的行向量。其中,a为初始值,b为步长,c为终止值(c

>

a)。>>t=0:2:10t=0246810linspace函数产生行向量。其调用格式为:linspace(a,b,n)其中a和b是生成向量的第1个和最后一个元素,n是元素总数。当n省略时,自动产生100个元素。显然,linspace(a,b,n)与a:(b

a)/(n

1):b等价。例如:x=linspace(0,10,6)x=02468101.5MATLAB矩阵及其基本运算——冒号表达式2/21.5MATLAB矩阵及其基本运算——矩阵的拆分1/81.矩阵元素可以通过下标(Subscript)对矩阵的单个元素操作。例如,A(2,3)=76语句将矩阵A的第2行第3列的元素赋为76值。也可以采用矩阵元素的序号(Index)来引用矩阵元素。矩阵元素的序号就是相应元素在内存中的排列顺序。矩阵元素按列编号,先第1列,再第2列,依次类推。例如:>>A=[10,20,30;40,50,60];>>A(3)ans=20序号与下标是一一对应的,以m

×

n矩阵A为例,矩阵元素A(i,j)的序号为(j−1)*m

+

i。其相互转换关系也可利用sub2ind和ind2sub函数求得。>>sub2ind(size(A),1,3)ans=5size(A)函数返回包含两个元素的向量:矩阵A的行数和列数>>[i,j]=ind2sub(size(A),5)i=1j=31.5MATLAB矩阵及其基本运算——矩阵的拆分2/8length(A):给出A的维数;reshape(A,m,n):在矩阵总元素保持不变的前提下,将矩阵A重新排成mn的二维矩阵。>>x=linespace(0,11,12)*pi;>>y=reshape(x,3,4)y=09.424818.849628.27433.141612.566421.991131.41596.283215.708025.132734.5575>>newy=reshape(y,2,6)newy=06.283212.566418.849625.132731.41593.14169.424815.708021.991128.274334.55751.5MATLAB矩阵及其基本运算——矩阵的拆分3/81.5MATLAB矩阵及其基本运算——矩阵的拆分4/82.矩阵拆分(1)利用冒号表达式获得子矩阵①A(m,n)表示取A矩阵第m行、第n列的元素,A(m,:)表示取A矩阵第m行的全部元素,A(:,n)表示取A矩阵的第n列全部元素。>>A=1:2:5A=135>>B=[A;2*A;3*A]B/p>

>>B(2,:)ans=2610>>B(:,3)ans=51015②A(m1:m2,:)表示取A矩阵第m1~m2行的全部元素,A(:,n1:n2)表示取A矩阵第n1~n2列的全部元素,A(m1:m2,n1:n2)表示取A矩阵第m1~m2行内,并在第n1~n2列中的所有元素。>>A=[1,2,3,4,5;6,7,8,9,10;11,12,13,14,15;16,17,18,19,20]A=1234567891011121314151617181920>>A(2:3,4:5)ans=9101415>>A(2:3,1:2:5)ans=68101113151.5MATLAB矩阵及其基本运算——矩阵的拆分5/8③A(:)将矩阵A每一列元素堆叠起来,成为一个列向量,这也是MATLAB变量的内容存储方式。>>A=[-45,65,71;27,35,91]A=-456571273591>>B=A(:)B=-452765357191利用冒号运算很容易从给出的矩阵中获得子矩阵,处理速度比利用循环语句来赋值快得多,所以应该尽量用这种赋值方法。1.5MATLAB矩阵及其基本运算——矩阵的拆分6/8可利用一般向量和end运算符来表示矩阵下标,从而获得子矩阵。end表示某一维末尾元素下标。>>A=[1,2,3,4,5;6,7,8,9,10;11,12,13,14,15;16,17,18,19,20];>>A(end,:)%取A最后一行元素ans=1617181920>>A([1,4],3:end)%取A第1,4行中第3列到最后一列的元素ans=3451819201.5MATLAB矩阵及其基本运算——矩阵的拆分7/8(2)利用空矩阵删除矩阵的元素空矩阵是指无任何元素的矩阵,表示形式为[]。给变量x赋空矩阵的语句为x=[]将某些元素从矩阵中删除,采用将其置为空矩阵的方法就是一种有效的方法。A=[123456;789101112;131415161718];A(:,[24])=[]%删除A的第2列和第4列元素A=135679111213151718

1.5MATLAB矩阵及其基本运算——矩阵的拆分8/81.5MATLAB矩阵及其基本运算——算术运算1/111.基本算术运算MATLAB的基本算术运算有:+(加)、−(减)、*(乘)、/(右除)、\(左除)、^(乘方)。(1)矩阵加减运算运算规则是:若A和B矩阵的维数相同,则可以执行矩阵的加减运算,A和B矩阵的相应元素相加减。如果A与B的维数不相同,则MATLAB将给出错误信息,提示用户两个矩阵的维数不匹配。一个标量也可以和其他不同维数的矩阵进行加减运算。>>x=[2,-1,0;3,2,-4];>>y=x-1y=1-2-121-5>>y=y+xy=3-3-153-91.5MATLAB矩阵及其基本运算——算术运算2/11(2)矩阵乘法矩阵A和B进行乘法运算,要求A的列数与B的行数相等,或称A和B两矩阵维数相容。如果两者的维数不相容,则将给出错误信息,提示用户两个矩阵是不可乘的。例如:A=[1,2,3;4,5,6];B=A*A???Errorusing==>mtimesInnermatrixdimensionsmustagree.在MATLAB中,还可以进行矩阵和标量相乘,标量可以是乘数也可以是被乘数。矩阵和标量相乘是矩阵中的每个元素与此标量相乘。1.5MATLAB矩阵及其基本运算——算术运算3/11(3)矩阵除法MATLAB中有两种矩阵除法:\和/,分别表示左除和右除。如果A是非奇异方阵,则:A\B=inv(A)*B,B/A=B*inv(A)。对于含有标量的运算,两种除法运算的结果相同:3/4=4\3=0.75;设a=[10.5,25],则a/5=5\a=[2.10005.0000]。对于矩阵运算,一般A\BB/A。>>a=[123;426;749];>>b=[432;751;12792];>>c1=a\bc1=0.5000-0.500044.50001.00000.000046.00000.50001.1667-44.8333>>c2=b/ac2=-0.1667-3.33332.5000-0.8333-7.66675.500012.833363.6667-36.50001.5MATLAB矩阵及其基本运算——算术运算4/11(4)矩阵的乘方一个矩阵的乘方运算可以表示成A^x,要求A为方阵,x为标量。>>A=[123;456;780];>>A^2ans=303615668142395469若x是正整数,A^x表示A自乘x次;若x=0,得到一个与A维数相同的单位矩阵。如x小于0且A的逆矩阵存在,则A^x=inv(A)^(-x)>>A=[123;456;780];>>A^0ans=100010001>>A^(-1)ans=-1.77780.8889-0.11111.5556-0.77780.2222-0.11110.2222-0.11111.5MATLAB矩阵及其基本运算——算术运算5/112.点运算MATLAB有一种特殊的运算符,其运算符是在有关算术运算符前面加点,所以叫点运算。点运算符有.*、./、.\和.^。两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维参数相同。>>A=[1,2,3;4,5,6;7,8,9];>>B=[-1,0,1;1,-1,0;0,1,1];>>C=A.*B%表示A和B单个元素之间对应相乘,与A*B不同C=-1034-50089如果A、B两矩阵具有相同的维数,则A./B表示A矩阵除以B矩阵的对应元素。B.\A等价于A./B。>>A=[123;456];>>B=[-213;-114];>>C1=A./BC1=-0.50002.00001.0000-4.00005.00001.5000>>C2=B.\AC2=-0.50002.00001.0000-4.00005.00001.50001.5MATLAB矩阵及其基本运算——算术运算6/11点运算是MATLAB很有特色的一个运算符,在实际应用中起着很重要的作用。当x=0.1,0.4,0.7,1时,分别求y=x2cosx的值>>x=0.1:0.3:1;>>y=x.*x.*cos(x);或者:>>y=x.^2.*cos(x);1.5MATLAB矩阵及其基本运算——算术运算7/111.5MATLAB矩阵及其基本运算——算术运算8/113.MATLAB常用数学函数(1)函数的自变量规定为矩阵变量,运算法则是将函数逐项作用于矩阵的元素上,因而运算的结果是与自变量同维数的矩阵。>>y=sin(0:pi/2:2*pi)y=01.00000.0000-1.0000-0.0000>>y=abs(y)y=01.00000.00001.00000.00001.5MATLAB矩阵及其基本运算——算术运算9/11(2)abs函数可以求实数的绝对值、复数的模、字符串的ASCII码值。>>x=[-3.14,3+4i];>>abs(x)ans=3.14005.0000(3)用于取整的函数有fix、floor、ceil、round,要注意区别。>>x=[fix(13.37),floor(13.37),ceil(13.37),round(13.37)]x=13131413>>x=[fix(-13.67),floor(-13.67),ceil(-13.67),round(-13.67)]x=-13-14-13-141.5MATLAB矩阵及其基本运算——算术运算10/11(4)rem与mod函数的区别。rem(x,y)和mod(x,y)要求x,y为相同大小的实矩阵或为标量。当y0,rem(x,y)

=

x−y.*fix(x./y),mod(x,y)=x−y.*floor(x./y);当y

=

0,rem(x,0)

=

NaN,而mod(x,0)

=

x。显然,当x,y同号时,rem(x,y)与mod(x,y)相等。rem(x,y)的符号与x相同,而mod(x,y)的符号与y相同。>>x=5;>>y=3;>>[rem(x,y),mod(x,y)]ans=22>>x=-5;>>y=3;[rem(x,y),mod(x,y)]ans=-211.5MATLAB矩阵及其基本运算——算术运算11/111.5MATLAB矩阵及其基本运算——关系运算1/3MATLAB提供了6种关系运算符:<(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)、=

=(等于)、~=(不等于)。(1)当两个比较量是标量时,直接比较两数的大小。若关系成立,关系表达式结果为1,否则为0。>>A=5A=5>>A=A==10A=0(2)当参与比较的量是两个维数相同的矩阵时,比较是对两矩阵相同位置的元素按标量关系运算规则逐个进行,并给出元素的比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由0或1组成。1.5MATLAB矩阵及其基本运算——关系运算2/3>>A=[1,23;456];>>B=[314;5210];>>A>Bans=010010>>C=A~=BC=111111(3)当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵的每一个元素按标量关系运算规则逐个比较,并给出元素比较结果。最终的运算结果是一个维数与矩阵相同的矩阵,它的元素由0或1组成。1.5MATLAB矩阵及其基本运算——关系运算3/3>>A=[314;5210];>>B=A>4B=0001011.5MATLAB矩阵及其基本运算——逻辑运算1/5MATLAB提供了3种逻辑运算符:&(与)、|(或)和~(非),4个逻辑运算函数:and(a,b)、or(a,b)、not(a)和xor(a,b)。在逻辑运算中,确认非零元素为真,用1表示;零元素为假,用0表示。a&b或函数and(a,b)表示a和b作逻辑与运算,当a、b全为非零时,运算结果为1,否则为0。a|b或函数or(a,b)表示a和b作逻辑或运算,当a、b中只要有一个非零,运算结果为1。~a和函数not(a)表示对a作逻辑非运算,当a是零时,运算结果为1;当a非零时,运算结果为0。函数xor(a,b)表示a和b作逻辑异或运算,当a、b的值不同时,运算结果为1,否则运算结果为0。1.5MATLAB矩阵及其基本运算——逻辑运算2/5(1)若参与逻辑运算的是两个同维矩阵,那么运算将对矩阵相同位置上的元素按标量规则逐个进行。最终运算结果是一个与原矩阵同维的矩阵,其元素由1或0组成。>>A=[23,54,12,6,-78];>>B=[5,324,7,-43,76];>>C1=A>10&B<10C1=10100>>C2=xor(A>10,B<10)C2=01010(2)若参与逻辑运算的一个是标量,一个是矩阵,那么运算将在标量与矩阵中的每个元素之间按标量规则逐个进行。最终运算结果是一个与矩阵同维的矩阵,其元素由1或0组成。(3)逻辑非是单目运算符,也服从矩阵运算规则。(4)在算术、关系、逻辑运算中,算术运算优先级最高,逻辑运算优先级最低。1.5MATLAB矩阵及其基本运算——逻辑运算3/51.5MATLAB矩阵及其基本运算——逻辑运算4/5——关系与逻辑运算函数函数名含义all若向量的所有元素非零,则结果为1any向量中任何一个元素非零,都给出结果1exist检查变量在工作空间中是否存在,若存在,则结果为1,否则为0find找出向量或矩阵中非零元素的位置isempty若被查变量是空阵,则结果为1isglobal若被查变量是全局变量,则结果为1isinf若元素是inf,则结果矩阵相应位置元素取1,否则取0isnan若元素是nan,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论