《第一章 Matlab语言基础.ppt》由会员分享,可在线阅读,更多相关《第一章 Matlab语言基础.ppt(80页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第一章Matlab语言基础声明和致谢部分幻灯片取自网络电子课件和电子资源,由于无法得知这些课件和资料的真正作者信息,文中将不一一致谢,在此笼统的对不知名的电子课件、电子资源作者以及上传者一并表示衷心感谢!提纲提纲o1.Matlab简介o2.数据类型o3.算术运算o4.关系和逻辑运算o5.矩阵运算o6.字符串运算o7.流程控制语句o8.帮助系统Matlab简介简介oMATLAB的起源与发展MATLAB是“矩阵实验室”(MATrixLABoratory)的缩写,最初版本是由CleveMoler博士用FORTRAN语言开发的矩阵分析软件。80年代初期,由CleveMoler和JohnLittle采用
2、C语言改写了MATLAB的内核。成立了Mathworks软件开发公司,并于1984年将MATLAB正式推向市场。1992年初推出了应用于Windows操作系统的MATLAB4.x版本。1997年推出5.1版本。1998年推出5.2版本。1999年推出MATLAB5.3版本,MATLAB5.3对应于Release11。2000年又推出了更为简便易学的MATLAB6.0版本,MATLAB6.0对应于Release12。2004年,MATLAB7.0版。20011年,MATLAB7.13版Matlab简介简介oMATLAB的主要特点MATLAB的基本单位为矩阵.MATLAB语言以解释方式工作.具有非
3、常友好的人机界面。具有强大的作图和数据可视化功能.具有极强的可扩展性。oMATLAB的基本组成MATLAB主程序、Simulink动态系统仿真和MATLAB工具箱(Toolbox)三大部分组成。主程序包括了MATLAB语言、工作环境、句柄图形、数学函数库和应用程序接口五部分.Matlab简介简介oMATLAB的应用广泛应用于工程计算及数值分析领域,现已成为国际公认的最优秀的工程应用开发环境。MATLAB功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。在欧美各高等院校,MATLAB已经成为线性代数、自动控制理论、数字信号处理、时间序列分析、动态系统仿真、图像处理等课程的基本教学工具,成
4、为大学生、硕士生以及博士生必须掌握的基本技能。Matlab工作环境界面工作环境界面命令命令窗口窗口菜单栏菜单栏常用工具栏常用工具栏当前路径当前路径历史命令历史命令工作区工作区当前目录当前目录Matlab通用命令1.“.”回上一级目录;回上一级目录;2.续号续号“”表示一行未完,而在下一行继续;表示一行未完,而在下一行继续;3.分号分号“;”在方括号中,表示矩阵中行的结尾;在方括号中,表示矩阵中行的结尾;用在每行的结尾,则用在每行的结尾,则不显示该行运算的结果。不显示该行运算的结果。4.“”注释注释输出时控制格式输出时控制格式5.冒号冒号“:”可以用来产生向量可以用来产生向量用作矩阵的下标,部分
5、地选择矩阵元素;用作矩阵的下标,部分地选择矩阵元素;进行行循环操作。进行行循环操作。6“=”赋值赋值操作符操作符提纲提纲o1.Matlab简介o2.数据类型o3.算术运算o4.关系和逻辑运算o5.矩阵运算o6.字符串运算o7.流程控制语句o8.帮助系统变量变量常量常量字符串字符串单元型变量单元型变量结构型变量结构型变量矩阵、向量矩阵、向量多项式多项式Matlab数据类型数据类型变量变量(包括函数包括函数)的的命名规则命名规则:由英文字母、数字和下划:由英文字母、数字和下划线混合组成,不得包含空格和标点线混合组成,不得包含空格和标点;第一个字符必须是;第一个字符必须是英文字母,最多包括英文字母,
6、最多包括31个字符个字符;对字母的大小写敏感对字母的大小写敏感。局部变量和全局变量局部变量和全局变量永久变量(常量)永久变量(常量)局部变量:局部变量:只能在某一函数体内使用,而不能从其他函只能在某一函数体内使用,而不能从其他函数和数和Matlab工作空间访问的变量。工作空间访问的变量。全局变量:全局变量:在几个函数及在几个函数及Matlab函数中都能使用的变量函数中都能使用的变量就是就是。(全局变量名应尽可能大写,并由(全局变量名应尽可能大写,并由global声明)声明)变量变量Matlab内部的每一个数据元素都是用内部的每一个数据元素都是用双精度数双精度数(double)来表示和存储的。来
7、表示和存储的。变量输出时用户可以用变量输出时用户可以用format命令设置或改变输出格式。命令设置或改变输出格式。短格式短格式(Short):1.33330.0000短格式短格式e方式方式(Shorte):1.3333e+001.2345e-06短格式短格式g方式方式(Shortg):1.33330.0长格式长格式(Long):1.333333333333330.00000123450000长格式长格式e方式方式(Longe):1.33333333333333e+001.2345000000000e-06长格式长格式g方式方式(Longg):1.333333333333330.00000123
8、45数字变量数字变量常量常量ans预设的计算结果的变量名epsMATLAB定义的正的极小值=2.2204e-16pi内建的值inf值,无限大(1/0)NaN无法定义一个数目(0/0)i或j虚数单位i=j=-1nargin函数输入参数个数nargout函数输出参数个数realmax最大的正实数realmin最小的正实数【例】nargin用法示例o函数文件examp.m:functionfout=charray(a,b,c)ifnargin=1fout=a;elseifnargin=2fout=a+b;elseifnargin=3fout=(a*b*c)/2;end命令文件mydemo.m:x=1
9、:3;y=1;2;3;examp(x)examp(x,y)examp(x,y,3)执行mydemo.m后的输出是:ans=123ans=246ans=21所有字符串都用单引号括起来。所有字符串都用单引号括起来。s=matlab字符中的每个字符字符中的每个字符(包括空格)都是字符串变量包括空格)都是字符串变量(矩阵或向量矩阵或向量)中的一个元素。中的一个元素。字符串中的字符以字符串中的字符以ASCII码形式储存并区分大小码形式储存并区分大小,用用函数函数abs可以看到字符的可以看到字符的ASCII码。码。在在Matlab中,中,字符串字符串和和字符矩阵字符矩阵基本上是等价的。基本上是等价的。s=
10、matlab等价于等价于s=matlab字符串变量字符串变量单元型变量是一种比较特殊的数据类型,本质上讲,单单元型变量是一种比较特殊的数据类型,本质上讲,单元型变量实际上是一种元型变量实际上是一种以任意形式的数据为元素的多维以任意形式的数据为元素的多维数组。数组。单元型变量可以存放任何类型、任何大小的数据,单元型变量可以存放任何类型、任何大小的数据,其其大小是不定的。大小是不定的。A=1,2;3,4A=1234B=1:4,A,abcdB=1x4double2x2doubleabcdB为单元为单元型型变量(用花括号)变量(用花括号)cellplot(B)celldisp(B)B1=1234B2=
11、1234B3=abcd单元型变量单元型变量结构型变量结构型变量D.a1=abcd;D.a2=1;D.a3=1,2,3,4;DD=a1:abcda2:1a3:1234D为结构型变量为结构型变量结构型变量是另一种可以将不同类型数据组合在一起结构型变量是另一种可以将不同类型数据组合在一起的数据类型,与单元型变量的不同在于的数据类型,与单元型变量的不同在于结构结构型型变量是变量是以指针方式以指针方式来传递数据的。来传递数据的。C=struct(c1,1,c2,B,c3,abcd)C=1x3structarraywithfields:c1c2c3C为结构型变量为结构型变量矩阵、向量矩阵、向量Matlab
12、是以矩阵为基本运算单元的,是以矩阵为基本运算单元的,数组数组的建立、的建立、存储完全等同于矩阵,只是存储完全等同于矩阵,只是计算时计算时在符号上做了不在符号上做了不同的约定。同的约定。矩阵运算按照矩阵运算按照线性代数中基本的运算法则线性代数中基本的运算法则进行;进行;数组运算数组运算是是针对数组中每个元素进行的运算针对数组中每个元素进行的运算向量是组成向量是组成矩阵的基本元素矩阵的基本元素之一。可以把之一。可以把行向量行向量看看成成1 1 n n 阶矩阵,阶矩阵,把把列向量列向量看成看成n n 1 1阶矩阵。阶矩阵。向量向量的基本运算采用的基本运算采用数组运算数组运算法则。法则。多项式是以多项
13、式是以向量向量的形式表达的。可以是的形式表达的。可以是列向量列向量也也可以是可以是行向量行向量。p=1,2,3poly2sym(p)ans=x2+2*x+3m=3;4;5poly2sym(m)ans=3*x2+4*x+5多项式多项式提纲提纲o1.Matlab简介o2.数据类型o3.算术运算o4.关系和逻辑运算o5.矩阵运算o6.字符串运算o7.流程控制语句o8.帮助系统算术运算符算术运算符a=6a=6b=2b=2a+bans=8a-b=ans=4abans=36a*bans=12a/bans=3abans=0.3333左除主要用于矩阵计算,实际是解线性方程A*X=BX=AB表达式及函数表达式及
14、函数Matlab采采用用的的是是表表达达式式语语言言,用用户户输输入入的的语语句句由由Matlab系系统统解解释释运运行行。用用户户可可以以在在Matlab的的命命令令窗窗口口中中键键入入命命令令,也也可可以以在在编编辑辑器器内内编编写写应应用用程程序序。Matlab语句由表达式和变量组成,有两种最常见的语语句由表达式和变量组成,有两种最常见的语句形式:句形式:表达式表达式变量表达式变量表达式t=6t=6sin(5*t+6)ans=-0.9918y=sin(5*t+6)y=-0.9918表达式由表达式由变量名、运算符、数字和函数名变量名、运算符、数字和函数名组成。组成。表达式将按常规的优先纽表
15、达式将按常规的优先纽从左至右从左至右执行运算;执行运算;优先级的规定是优先级的规定是指数运算级别最高指数运算级别最高,乘除运算次之乘除运算次之;括号可以改变运算顺序;括号可以改变运算顺序;书写表达式时,书写表达式时,赋值符赋值符“”和运算符两侧允许有和运算符两侧允许有空格空格,以增加可读性。但在,以增加可读性。但在复数或符号表达式中要复数或符号表达式中要尽量避免空格尽量避免空格,以防出错;以防出错;表达式的末尾加表达式的末尾加“;”时,时,Matlab系统只把数值赋系统只把数值赋给变量,给变量,不显示计算结果不显示计算结果;不加;不加“;”时,时,Matlab系统将会在该条语句的下面直接显示运
16、算结果。系统将会在该条语句的下面直接显示运算结果。表达式及函数表达式及函数常用算术运算函数常用算术运算函数三角函数和双曲函数三角函数和双曲函数名称含义名称含义名称含义sin正弦csc余割atanh反双曲正切cos余弦asec反正割acoth反双曲余切tan正切acsc反余割sech双曲正割cot余切sinh双曲正弦csch双曲余割asin反正弦cosh双曲余弦asech反双曲正割acos反余弦tanh双曲正切acsch反双曲余割atan反正切coth双曲余切atan2四象限反正切acot反余切asinh反双曲正弦sec正割acosh反双曲余弦常用常用算术运算算术运算函数函数指数函数和复数函数指
17、数函数和复数函数名称含义名称含义名称含义expE为底的指数log1010为底的对数pow22的幂log自然对数log22为底的对数sqrt平方根复数函数名称含义名称含义名称含义abs绝对值conj复数共轭real复数实部angle相角imag复数虚部指数函数名称含义名称含义ceil向+圆整rem求余数fix向0圆整round向靠近整数圆整floor向-圆整sign符号函数mod模除求余常用常用算术运算算术运算函数函数圆整函数和求余函数圆整函数和求余函数提纲提纲o1.Matlab简介o2.数据类型o3.算术运算o4.关系和逻辑运算o5.矩阵运算o6.字符串运算o7.流程控制语句o8.帮助系统关系
18、和逻辑运算符关系和逻辑运算符关系运算符关系运算符逻辑运算符逻辑运算符当两个变量是当两个变量是标量标量a和和b时时若若a、b之间关系成立,则关系运算结果为之间关系成立,则关系运算结果为1;若若a、b之间关系不成立,则关系运算结果为之间关系不成立,则关系运算结果为0;当两个维数相同的当两个维数相同的矩阵矩阵A和和B比较时,矩阵比较时,矩阵A、B比较的比较的是是相同位置的元素相同位置的元素,按标量的运算规则逐个进行。,按标量的运算规则逐个进行。关系运关系运算的结果算的结果是一个和是一个和A维数相同的矩阵,它的元素由维数相同的矩阵,它的元素由0和和1组组成。成。当一个当一个矩阵矩阵A和一个标量和一个标
19、量b比较时,把标量比较时,把标量b和矩阵和矩阵A的的每一个元素每一个元素按标量关系运算规则逐个比较。关系按标量关系运算规则逐个比较。关系运算的结运算的结果果是一个和数组是一个和数组A维数相同的矩阵,它是由维数相同的矩阵,它是由0和和1组成。组成。优先级优先级由高到低为由高到低为算术运算算术运算、关系运算关系运算和和逻辑运算。逻辑运算。关系运算法则关系运算法则A=3,4,8;9,0,2;5,3,7A=348902537B=4,4,1;7,8,4;5,1,7B=441784517E=(AB)E=001100010NE=(A=B)NE=101111010A0=(A5)A0=001100001B0=(
20、BA=3,4,8;9,0,2;5,3,7A=348902537B=4,4,1;7,8,4;5,1,7B=441784517AB=A&BAB=111101111A_B=A|BA_B=111111111C=AC=000010000cc=(A3)&(BA=1,2,3,4;5,6,7,8;9,10,11,12;13,14,15,16B=1,5,9,132,6,10143,7,11,154,8,12,16C=A+BC=27121771217221217222717222732D=A-BD=0-3-6-930-3-6630-39630E=A+3E=45678910111213141516171819矩阵运
21、算例子矩阵运算例子b.矩阵乘法矩阵乘法C=A*BC=307011015070174278382110278446614150382614846D=A*3D=36912151821242730333639424548c.矩阵除法矩阵除法左除左除AB=inv(A)*BA=8,1,6;3,5,7;4,9,2A=816357492B=1,1,1;1,2,3;1,3,6B=111123136ABans=0.06670.05000.09720.06670.30000.63890.06670.0500-0.0694C=inv(A)C=0.1472-0.14440.0639-0.06110.02220.105
22、6-0.01940.1889-0.1028C*Bans=0.06670.05000.09720.06670.30000.63890.06670.0500-0.0694右除右除A/B=A*inv(B)A/Bans=27-3112120-1329-12D=inv(B)D=3-31-35-21-21A*Dans=27-3112120-1329-12o【例1】求解线性方程组AX=B11.5297303.60.5-44-4其中A=710-32233,B=20378.5216538090-2016实际应用举例实际应用举例o在MATLAB命令窗口输入命令:a=1,1.5,2,9,7;0,3.6,0.5,-4
23、,4;7,10,-3,22,33;3,7,8.5,21,6;3,8,0,90,-20;b=3;-4;20;5;16;x=ab得到的结果是:x=3.5653-0.9255-0.26950.14350.0101o【例2】求方程x4+7x3+9x-20=0的全部根。在MATLAB命令窗口输入:p=1,7,0,9,-20;%建立多项式系数向量x=roots(p)%求根得到的结果是:x=-7.2254-0.4286+1.5405i-0.4286-1.5405i1.0826实际应用举例实际应用举例常用矩阵函数常用矩阵函数名称含义名称含义eye(size(A)产生与A矩阵同阶的单位矩阵rand(m,n)产生
24、随机元素的矩阵zeros(m,n)产生0矩阵size(a)返回包含两个元素的向量。ones(m,n)产生幺矩阵length(a)返回向量的最大者。fiplr矩阵左右翻转diag产生或提取对角阵fipud矩阵上下翻转tril产生下三角fipdim矩阵特定维翻转triu产生上三角Rot90矩阵反时针90翻转常用矩阵函数常用矩阵函数名称含义名称含义min最小值max最大值mean平均值median中位数std标准差diff相邻元素的差sort排序length个数cumsum累计元素总和sum总和cumprod累计元素总乘积常用矩阵函数常用矩阵函数常用矩阵函数常用矩阵函数(1)数组对应元素相乘A.*B
25、(2)数组元素的乘方A.2(3)数组对应元素的左除A.B(4)数组对应元素的右除A./B数组的基本运算数组的基本运算数组的运算法则数组的运算法则数组运算数组运算是是Matlab的一种运算形式,的一种运算形式,它它从数组(矩阵)从数组(矩阵)的单个元素出发,针对每个元素进行的运算。的单个元素出发,针对每个元素进行的运算。MATLAB对对数组运算数组运算在符号上做了不同的约定,在符号上做了不同的约定,运算符运算符运算符运算符形式为:形式为:形式为:形式为:.*,./,.,.*,./,.,.矩阵运算和数组运算矩阵运算和数组运算有着显著的不同。属于两种不同的有着显著的不同。属于两种不同的运算:运算:矩
26、阵运算矩阵运算是从矩阵的整体出发,按照线性代数的运是从矩阵的整体出发,按照线性代数的运算规则进行算规则进行,有着明确而严格的数学规则;,有着明确而严格的数学规则;而数组运算而数组运算是是从矩阵的单个元素出发,针对每个元素进行的运算从矩阵的单个元素出发,针对每个元素进行的运算。对于加法和减法而言,矩阵运算和数组运算相同对于加法和减法而言,矩阵运算和数组运算相同;对于;对于乘法和除法而言,矩阵和数组的运算有着显著的不同。乘法和除法而言,矩阵和数组的运算有着显著的不同。数组的运算法则数组的运算法则数组乘数组乘/除及乘方除及乘方数组除数组除的运算规则:的运算规则:当当参参与与除除运运算算的的两两个个矩
27、矩阵阵同同维维时时,运运算算为为矩矩阵阵的的相相应应元元素素相相除除,计计算算结结果果是是与与参参与与运算的矩阵同维的矩阵;运算的矩阵同维的矩阵;当当参参与与运运算算的的矩矩阵阵有有一一个个是是标标量量时时,运运算算是是标标量量和和矩矩阵阵的的每每一一个个元元素素相相除除,计计算算结结果是与参与运算的矩阵同维的矩阵;果是与参与运算的矩阵同维的矩阵;右右除除与与左左除除的的关关系系为为A./B=B.A,其其中中A是被除数,是被除数,B是除数。是除数。数组运算例子数组运算例子E=1,2,3;4,5,6;7,8,9E=123456789F=1,4,7;2,5,8;3,6,9F=147258369E.
28、Fans=1.00002.00002.33330.50001.00001.33330.42860.75001.00004.Fans=0.25001.00001.75000.50001.25002.00000.75001.50002.2500F./Eans=1.00002.00002.33330.50001.00001.33330.42860.75001.0000E*Fans=143250327712250122194E.*Fans=182182548214881数组乘方数组乘方的运算规则:的运算规则:矩矩阵阵的的标标量量乘乘方方A.p(即即A为为矩矩阵阵,p为为标标量量),运运算算为为矩矩阵阵
29、每每个个元元素素的的p次次方方,计计算算结结果果是是与与矩阵矩阵A同维的矩阵;同维的矩阵;标标量量的的矩矩阵阵乘乘方方p.A,表表示示以以p为为底底,分分别别以以A的的元元素素为为指指数数求求幂幂值值,计计算算结结果果是是与与矩矩阵阵A同同维的矩阵。维的矩阵。数组的运算法则数组的运算法则x=1,2;3,4;x=1,2;3,4;x.3=x.3=ans=1827643.x=3.x=ans=392781数组运算例子数组运算例子提纲提纲o1.Matlab简介o2.数据类型o3.算术运算o4.关系和逻辑运算o5.矩阵运算o6.字符串运算o7.流程控制语句o8.帮助系统字符串操作例子字符串操作例子A=Ch
30、ina“中国”;输出带引号的汉字B=我是好学生c=Iamfine.s3=char(s,y,m,b,o,l,i,c);用函数char生成字符串abs(s3);字符串转换为数值代码b=num2str(5);数字转换为字符比较b*2和str2num(b)*2字符串操作例子字符串操作例子ch=ABc123d4e56Fg9subch=ch(1:5)%取子字符串chcat=strcat(ch,ABCDE)%字符串连接chcmp=strcmp(ch,ABCDE)%字符串比较orevch=ch(end:-1:1)%将字符串倒排k=find(ch=a&cheval(zeros(3,3)ans=000000000
31、字符串操作例子字符串操作例子字符串函数字符串函数abs字符串到ASCII转换fprintf把格式化的文本写到文件中或显示屏上int2str整数转换成字符串lower字符串转换成小写num2str数字转换成字符串setstrASCII转换成字符串sprintf用格式控制,数字转换成字符串sscanf用格式控制,字符串转换成数字str2mat字符串转换成一个文本矩阵str2num字符串转换成数字upper字符串转换成大写字符串函数字符串函数eval(string)作为一个MATLAB命令求字符串的值blanks(n)返回一个n个零或空格的字符串deblank去掉字符串中后拖的空格feval求由字符
32、串给定的函数值findstr从一个字符串内找出字符串isletter字母存在时返回真值isspace空格字符存在时返回真值isstr输入是一个字符串,返回真值lasterr返回上一个所产生MATLAB错误的字符串strcmp字符串相同,返回真值strrep用一个字符串替换另一个字符串strcat连接字符串提纲提纲o1.Matlab简介o2.数据类型o3.算术运算o4.关系和逻辑运算o5.矩阵运算o6.字符串运算o7.流程控制语句o8.帮助系统o语法:语法:for变数变数=矩阵;矩阵;运算式;运算式;endo例子例子s=0;fork=1:1:10%初始值、步长和最大限值初始值、步长和最大限值s=
33、s+k;end循环结束标志循环结束标志for循环语句循环语句o语法:语法:while条件式;条件式;运算式;运算式;endo例:例:s=0;k=0;whilek=9k=k+1;s=s+k;endswhile循环语句循环语句o语法(只有一种选择):语法(只有一种选择):if条件式;条件式;运算式;运算式;endif选择语句选择语句语法(两种选择):语法(两种选择):if条件式条件式运算式运算式else运算式运算式endif选择语句选择语句语法(多种选择):语法(多种选择):if条件式条件式运算式运算式elseif条件式条件式运算式运算式elseif条件式条件式运算式运算式.else运算式运算式e
34、ndif选择语句选择语句语法:swith变量casen1语句casen2语句otherwise语句endswitch选择语句选择语句提纲提纲o1.Matlab简介o2.数据类型o3.算术运算o4.关系和逻辑运算o5.矩阵运算o6.字符串运算o7.流程控制语句o8.帮助系统Matlab帮助系统帮助系统o1、Matlab联机帮助n工具条中的?按钮;nhelp菜单栏中前2项中的任何一项;n在命令窗口中执行helpdesk或doc。Matlab帮助系统帮助系统2、Matlab常用的窗口帮助命令常用的窗口帮助命令Matlab帮助系统帮助系统help命令直接输入help,MATLAB将列出所有的帮助主题,每个帮助主题对应于MATLAB搜索路径中的一个目录;help后加帮助主题,可获得指定帮助主题的帮助信息;help后加函数名;help后加命令名,将得到指定命令的用法;Matlab帮助系统帮助系统demo命令基本矩阵演示窗口基本矩阵演示窗口MATLAB演示窗口演示窗口Matlab帮助系统帮助系统helpwin命令用于打开MATLAB的帮助文件窗Matlab帮助系统帮助系统lookfor命令允许用户通过完整的或部分关键字来搜索要查找的内容who和whos的作用是列出在MATLAB工作内存中驻留的变量名exist命令用来查找或检查变量和函数的存在性The End