matlab扫盲--任.doc_第1页
matlab扫盲--任.doc_第2页
matlab扫盲--任.doc_第3页
matlab扫盲--任.doc_第4页
matlab扫盲--任.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

62 MATLAB软件及其应用MATLAB 是MATrix LABoratory(“矩阵实验室”)的缩写,是由美国MathWorks 公司开发的集数值计算、符号计算和图形可视化三大基本功能于一体的,功能强大、操作简单的语言.是国际公认的优秀数学应用软件之一.概括地讲,整个MATLAB系统由两部分组成,即MATLAB内核及辅助工具箱,两者的调用构成了MATLAB的强大功能.MATLAB语言以数组为基本数据单位,包括控制流语句、函数、数据结构、输入输出及面向对象等特点的高级语言,它具有以下主要特点:1)运算符和库函数极其丰富,语言简洁,编程效率高,MATLAB除了提供和C语言一样的运算符号外,还提供广泛的矩阵和向量运算符.利用其运算符号和库函数可使其程序相当简短,两三行语句就可实现几十行甚至几百行C或FORTRAN的程序功能.2)既具有结构化的控制语句(如for循环、while循环、break语句、if语句和switch语句),又有面向对象的编程特性.3)图形功能强大.它既包括对二维和三维数据可视化、图像处理、动画制作等高层次的绘图命令,也包括可以修改图形及编制完整图形界面的、低层次的绘图命令.4)功能强大的工具箱.工具箱可分为两类:功能性工具箱和学科性工具箱.功能性工具箱主要用来扩充其符号计算功能、图示建模仿真功能、文字处理功能以及与硬件实时交互的功能.而学科性工具箱是专业性比较强的,如优化工具箱、统计工具箱、控制工具箱、小波工具箱、图象处理工具箱、通信工具箱等.5)易于扩充.除内部函数外,所有MATLAB的核心文件和工具箱文件都是可读可改的源文件,用户可修改源文件和加入自己的文件,它们可以与库函数一样被调用.本节主要介绍MATLAB7.1的初步知识,当前最新版本是MATLAB2009B.621 MATLAB的窗口环境启动MATLAB以后,将进入MATLAB7.1的集成环境见图6-2,首先是和windows窗口一样的主窗口,然后在里面嵌套了一些子窗口,各个窗口功能说明如下.图6-2 matlab的默认界面1命令窗口(Command window)MATLAB的主要交互窗口.用于输入MATLAB 命令、函数、数组、表达式等信息,并显示图形以外的所有计算结果. 例如从键盘输入矩阵A=1 2 3; 4 5 6; 7 8 9 按Enter 键后屏幕立即显示结果A= 1 2 3 4 5 67 8 9命令窗口可作为一个多功能高级计算器,单击回车即执行计算命令,如语句未完成需要换行,可以使用续行符“” (续行号前不应是数字)或者同时点击shift键与回车键.另外“”可用于调出前一个命令行,“”可调出后一个命令行,避免重复输入.clc命令可清空命令窗口,“%”可引导说明语句. 2工作空间窗口(Workspace Window) 用于储存各种变量和结果的空间,显示变量的名称、大小、字节数及数据类型,对变量进行观察、编辑、保存和删除.临时变量不占空间,为了对变量的内容进行观察、编辑与修改,可以用三种方法打开内存数组编辑器.一是双击变量名;二是选择该窗口工具栏上的打开图标;三是鼠标指向变量名,点击鼠标右键,弹出选择菜单,然后选项操作.欲查看工作空间的情况.可以在命令窗口键入命令whos(显示存在工作空间全部变量的名称、大小、数据类型等信息)或命令who(只显示变量名).clear命令可删除工作空间的变量(缺省时删除所有变量).3命令历史窗口(Command History)记录已运行过的MATLAB命令历史,包括已运行过的命令、函数、表达式等信息,可进行命令历史的查找、检查等工作,也可以在该窗口中进行命令复制与重运行(双击即可).4当前目录浏览器(Current Directory)用于显示及设置当前工作目录,同时显示当前工作目录下的文件名、文件类型及目录的修改时间等信息.只有在当前目录或搜索路径下的文件及函数可以被运行或调用.设置当前目录可以在浏览器窗口左上角的输入栏中直接输入,或点击浏览器下拉按钮进行选择.还可用cd命令在命令窗口设置当前目录,如:cd c:mydir 可将c盘上的mydir目录设为当前工作目录.5MATLAB 的搜索路径(Searching Path)MATLAB定义的一系列文件路径的组合,缺省状态下包括当前路径和已安装的全部工具箱的路径.当在命令窗口输入一个字符串时,MATLAB按下列顺序开始搜索:(1)在工作空间中搜索是否有以该字符串为变量名的变量,有则返回该变量的值;(2)搜索是否有同名的MATLAB内部函数,如果有,执行该内部函数;(3)在当前目录中查找与该字符串同名的M文件,如果有,执行该文件;(4)在搜索目录中查找与该字符串同名的M文件,如果有,执行该文件;如果在搜索目录中存在多个同名函数,则只执行搜索路径中的第一个函数,其他函数不再执行.搜索目录的设置通过选择主菜单Set Path菜单项进行.用Add Folder按钮可以将某一目录加入搜索路径,选择Add with Subfolder按钮可将选中目录的子目录也包括在搜索路径中.6内存数组编辑器(Array Editor)提供对数值型或字符型二维数组的显示和编辑功能,对其他数据类型都不能编辑.通过工作空间窗口打开所选的变量时,该编辑器启动.7帮助浏览器(Help Browser) (1)帮助浏览器:提供方便快捷的帮助信息获取途径和图文并茂的帮助内容,MATLAB7.1是通过勾选Desktop菜单中的Help选项打开一个独立的交互式帮助浏览器.(2)help 命令:在命令窗口输入help命令,也是MATLAB寻找在线帮助的一种方便而快捷的方式. 命令help 列出主要的帮助主题, 命令help exp 列出函数exp的说明.(3)lookfor命令(lookfor commend):可以根据用户提供的完整或不完整的关键词,搜索出一组与之相关的命令或函数.(4)模糊查询(fuzzy Inquiry):用户只须输入命令的前几个字母,然后键入Tab键 MATLAB 就会列出所有以这个字母开始的命令.622 MATLAB的变量和数据操作1. 变量与常量(1)自定义变量变量是任何程序设计语言的基本要素之一,MATLAB语言当然也不例外.与常规的程序设计语言不同的MATLAB并不要求事先对所使用的变量进行声明,也不需要指定变量类型,MATLAB语言会自动依据所赋予变量的值或对变量所进行的操作来识别变量的类型.在赋值过程中如果赋值变量已存在时,MATLAB语言将使用新值代替旧值,并以新值类型代替旧值类型.在MATLAB语言中变量的命名应遵循如下规则:1变量名区分大小写.2变量名长度不超63位,第63个字符之后的字符将被MATLAB语言所忽略.3变量名以字母开头,可以是字母、数字、下划线组成,但不能使用标点.与其他的程序设计语言相同,在MATLAB语言中也存在变量作用域的问题.在未加特殊说明的情况下,MATLAB语言将所识别的一切变量视为局部变量,即仅在其使用的M文件内有效.若要将变量定义为全局变量,则应当对变量进行说明,即在该变量前加关键字global.一般来说全局变量均用大写的英文字符表示.(2)常量MATLAB语言本身也具有一些预定义的变量,这些特殊的变量称为常量.表6-1给出了MATLAB语言中经常使用的一些常量值.表6-1 matlab中的常量常 量表 示 数 值pi圆周率eps浮点运算的相对精度inf正无穷大NaN表示不定值realmax最大的浮点数i, j虚数单位在MATLAB语言中,定义变量时应避免与常量名重复,以防改变这些常量的值,如果已改变了某外常量的值,可以通过“clear+常量名”命令恢复该常量的初始设定值(当然,也可通过重新启动MATLAB系统来恢复这些常量值).(3)内存变量的管理工作空间窗口专门用于内存变量的管理,选中某些变量后,Delete按钮可进行删除,Open按钮进入变量编辑器,还可以把一些有用的变量长久的保留下来,扩展名为mat.格式为save 文件名变量名表 -append-asciiload 文件名变量名表 -ascii-ascii选项使文件以ASCII格式处理,省略以二进制格式处理.-append选项控制将变量追加到MAT文件中.(4)变量的赋值赋值语句的常用格式: 1变量=表达式(;)2表达式(;)表达式的结果为一矩阵,它赋给左边的变量.如省略变量名和“=”,则自动产生一个名为ans的变量, 如输入 1900/81结果为:ans=23.4568并显示在屏幕上,如语句以分号结束,则结果不显示,如: p=a*a;只完成运算,但不显示结果.2数据操作MALAB是以矩阵为基本运算单元的,而构成数值矩阵的基本单元是数字.为了更好地学习和掌握矩阵的运算,首先对数字的基本知识作简单的介绍.(1)数字和算术表达式MATLAB采用10进制惯例, 表示10 的幂次用符号e或E:3 -99 0.001 9.456 1.3e-3 4.5E21数值的相对精度是eps,即大约保持16位有效数字.MATLAB的算数运算符号:+ 加 addition , - 减 subtraction , * 乘 multiplication , 左除 left division , / 右除 right division, 幂 exponentiation对于标量,两种除法运算的结果相同,对于矩阵两种除法表示两种不同的除数矩阵和被除数矩阵的关系.对于简单的数字运算,可以直接在命令窗口中以平常惯用的形式输入,如计算2和3的乘积再加1时,可以直接输入: 1+2*3ans= 7这里“ans”是指当前的计算结果,若计算时用户没有对表达式设定变量,系统就自动赋当前结果给“ans”变量.用户也可以输入: a=1+2*3a= 7此时系统就把计算结果赋给指定的变量a了.(2)复数和复数矩阵复数用特殊字符i或j 表示.i=sqrt(-1), 其值在工作空间显示为 0+1.0000i. 输入z=3+4i或z=3+4j 结果一样. MATLAB 中复数有下面的语句生成办法:z=a+b*i 或 z=r*exp(i*) 其中r为复数的模,为复数辐角的弧度数.输入如下两个命令:(1) a=1 2;3 4+i*5 6;7 8(2) a=1+5i 2+6i; 3+7i 4+8i 结果相同: a = 1.0000 + 5.0000i 2.0000 + 6.0000i 3.0000 + 7.0000i 4.0000 + 8.0000i注1:当复数的虚部(image)为一个确定的数(而不是变量或矩阵)时,可省略“*”,如1+2*i可写成1+2i, 但a+b*i 不能写成 a+bi, 1 2+3 4*i不能写成 1 2 + 3 4i 注2:当复数作为矩阵元素时,复数内不能留有空格,如 1+5i, MATLAB中任何矩阵的元素内部都不能留有空格,否则会被当作两个元素处理而出错.如在程序设计中i 、j 被定义为其他变量则应定义另一新的复数单位.如 i1.(3)数据的输出格式MATLAB的数据显示格式由format命令来控制,他只影响结果在屏幕上的显示,不影响其计算与存储.MATLAB总是以双精度执行所有的运算.数据的显示格式见表6-2.表6-2 数据格式命令说明 格 式对应结果 命令 含义 4/3 1.2345e-6format shortformat longformat short eformat long eformat short gformat long g format hex format +format rat format bank短格式长格式短格式e方式长格式e方式短格式g方式长格式g方式16进制格式+格式分数格式银行格式1.33331.333333333333331.3333e+0001.33333333333333e+0001.33331.333333333333333ff5555555555555+4/31.33 0.00000.000001234500001.2345e-0061.234500000000000e-0061.2345e-0061.234500000000000e-0063eb4b6231abfd271+1/8100450.00 对于长短格式,如果矩阵的最大元素比1000大或比0.001小,则输出时将自动加入比例因子,如输入:x=12345 0.0009,回车输出x = 1.0e+004 * 1.2345 0.0000即 x=104*1.2345 0.0000,104为比例因子.MATLAB操作桌面的file菜单中打开preferences窗口,选择命令窗口界面,就可以方便地进行格式选择.(4)常用数学函数1基本数学函数: abs(x):纯量的绝对值或向量的长度 angle(z):复数z的相角(Phase angle) sqrt(x):开平方 real(z):复数z的实部 imag(z):复数z的虚部 conj(z):复数z的共轭复数 round(x):四舍五入至最近整数 fix(x):无论正负,舍去小数至最近整数 floor(x):地板函数,即舍去正小数至最近整数 ceil(x):天花板函数,即加入正小数至最近整数 rat(x):将实数x化为分数表示rats(x):将实数x化为多项分数展开 rem(x,y):求x除以y的余数 gcd(x,y):整数x和y的最大公因数 lcm(x,y):整数x和y的最小公倍数 exp(x):自然指数 pow2(x):2的指数 log(x):以e为底的对数,即自然对数 log2(x):以2为底的对数 log10(x):以10为底的对数 sign(x):符号函数 (Signum function).2三角函数: sin(x):正弦函数 cos(x):余弦函数 tan(x):正切函数 asin(x):反正弦函数 acos(x):反余弦函数 atan(x):反正切函数 atan2(x,y):四象限的反正切函数 sinh(x):超越正弦函数 cosh(x):超越余弦函数 tanh(x):超越正切函数 asinh(x):反超越正弦函数 acosh(x):反超越余弦函数 atanh(x):反超越正切函数3适用于向量的常用函数: min(x): 向量x的元素的最小值 max(x): 向量x的元素的最大值 mean(x): 向量x的元素的平均值 median(x): 向量x的元素的中位数 std(x): 向量x的元素的标准差 diff(x): 向量x的相邻元素的差 sort(x): 对向量x的元素进行排序(Sorting) length(x): 向量x的元素个数 norm(x): 向量x的欧氏长度 sum(x): 向量x的元素总和 prod(x): 向量x的元素总乘积 cumsum(x): 向量x的累计元素总和 cumprod(x): 向量x的累计元素总乘积 dot(x, y): 向量x和y的内积 cross(x, y): 向量x和y的外积623 MATLAB中的矩阵及运算1矩阵的建立(1)直接输入法从键盘上直接输入矩阵是最方便、最常用的创建数值矩阵的方法,尤其适合较小的简单矩阵.在用此方法创建矩阵时,应当注意以下几点:1 输入矩阵时要以“ ”为其标识符号,所有元素必须都在括号内;2. 矩阵同行元素之间由空格或逗号分隔,行与行之间用分号或回车键分隔;3矩阵大小不需要预先定义;4矩阵元素可以是运算表达式或小矩阵;5若“ ”中无元素表示空矩阵.例如: A=1 2 3;4 5 6;7 8 9 A= 1 2 3 4 5 6 7 8 9(2)利用冒号和函数例如: a=1:0.5:4 % 格式是 初始值:步长:终止值a= Columns through 7 1 1.5 2 2.5 3 3.5 4函数linspace(a,b,n)产生第一个元素为a,最后一个元素为b总数为n的行向量.(3)矩阵的截取首先可以通过下标引用,如上面输入的矩阵A:A(2,3)=5,由于矩阵是按列存储的,所以有:A(6)=8.然后可以使用冒号, B=A (1:2, : )B= 1 2 3 4 5 6通过上例可以看到B是由矩阵A的1到2行和相应的所有列的元素构成的一个新的矩阵.在这里,冒号代替了矩阵A的所有列.(4)外部文件读入首先可通过数据输入向导编辑器读入数据,通过桌面平台上的【File】菜单中的【Import Data】选项打开输入向导编辑器,按向导提示进行操作完成整个文本数据的输入.其次可以在m文件中创建矩阵:通过建立MATLAB的M文件可完成矩阵的输入,如建立B.m的文件,内容为:B=3 4 2;1 3 5;6 4 3 或 B=3 4 21 3 56 4 3则在命令窗口中使用B命令语句可以调用B矩阵.然后还从外部的数据文件中装入,利用 load 或 fread 命令可以读取MATLAB早期版本产生的矩阵,也可读取有其他应用程序产生的数据(或矩阵).其调用方法为: Load+文件名参数2特殊矩阵对于一些比较特殊的矩阵(单位阵、矩阵中含1或0较多),由于其具有特殊的结构,MATLAB提供了一些函数用于生成这些矩阵.常用的有下面几个:zeros(m) 生成m阶全0矩阵eye(m) 生成m阶单位矩阵ones(m) 生成m阶全1矩阵rand(m) 生成m阶均匀分布的随机阵randn(m) 生成m阶正态分布的随机矩阵3.矩阵的运算(1)算术运算1、基本四则运算算数运算符:+ 加, - 减, * 乘, 左除, / 右除, 幂.用法与数字运算几乎相同,但计算时要满足其数学要求(如:同型矩阵才可以加、减),要注意的是左除实际上表示,右除实际上表示,另外常数与矩阵的运算即是同该矩阵的每一元素进行运算(包括加减),但除法是一般做除数.2、数组运算数组的运算实质上就是针对数组内部的每个元素进行的.运算符为:+加,- 减,.* 点乘,./ 或 . 点除,. 点幂.另外常用的一些数学函数如指数运算(exp)、对数运算(log)、和开方运算(sqrt)等,对矩阵的运算也是数组运算.例如: a=2 1 -3 -1; 3 1 0 7; -1 2 4 -2; 1 0 -1 5; a3 ans=32 -28 -101 3499 -12 -151 239-1 49 93 851 -17 -98 139 a .3 ans=8 1 -27 -127 1 0 343-1 8 64 -8 1 0 -1 125(2)逻辑,关系运算表6-3 关系运算符符号运算符功 能函 数 名= =等于eq =不等于ne大于gt=大于等于ge&逻辑与and|逻辑或or逻辑非not 说明:在关系比较中,若比较的双方为同维数组,则比较的结果也是同维数组.它的元素值由0和1组成.当比较双方对应位置上的元素值满足比较关系时,它的对应值为1,否则为0.当比较的双方中一方为常数,另一方为一数组,则比较的结果与数组同维.在算术运算、比较运算和逻辑与、或、非运算中,它们的优先级关系先后为:比较运算、算术运算、逻辑与或非运算.例如: a=1 2 3; 4 5 6; 7 8 9; x=5; y= ones(3)*5; xa= x b=0 1 0; 1 0 1; 0 0 1; ab=a&bab= 0 1 0 1 0 1 0 0 1(3)线性代数的常用函数a 求矩阵a的转置det(a) 求矩阵a的行列式eig(a) 求矩阵a的特征值inv(a)或a (-1) 求矩阵a的逆矩阵rank(a) 求矩阵a的秩trace(a) 求矩阵a的迹(对角线元素之和)rref(a) 求矩阵a的行最简形null(A,r) 求系数矩阵为A的齐次方程的基础解系pinv(A)*b 求非齐次方程的特解例如: a=2 1 3 1; 3 1 0 7; -1 2 4 2; 1 0 1 5; a1=det(a); a2=det(inv(a); a1*a2 ans= 1624 Matlab在微积分中的应用1极限运算格式:limit (f, t, a, left or right)功能:求符号变量t 趋近a 时,函数f 的(左或右)极限.left 表示求左极限,right 表示求右极限,省略时表示求一般极限;a省略时变量t 趋近0; t省略时默认变量为x ,若无x则寻找(字母表上)最接近字母x 的变量.在求解之前应先申明自变量,也就是要先定义符号变量.例如:求极限的命令及结果为: syms x t %定义符号变量 limit (1+2*t/x)(3*x) , x, inf ) % inf为无穷大ans= exp(6*t)再如求函数x / |x| ,当时的左极限和右极限,命令及结果为: syms x limit(x/abs(x), x, 0, left) ans = -1 limit(x/abs(x),x, 0, right) ans = 12导数格式: diff (f,t,n)功能: 求函数f 对变量 t的n 阶导数.当n省略时,默认 n=1;当t省略时,默认变量x, 若无x时则查找字母表上最接近字母x 的字母.例如:求函数f=a*x2+b*x+c对变量 x的一阶导数, 命令及结果为 syms a b c x f=a*x2+b*x+c; diff(f) ans=2*a*x+b求函数f 对变量b的一阶导数(可看作求偏导), 命令及结果为 diff(f,b) ans=x求函数f 对变量x的二阶导数, 命令及结果为 diff(f,2) ans=2*a3积分格式: int(

温馨提示

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

最新文档

评论

0/150

提交评论