1、MATLAB教案宿 州 学 院机械与电子工程学院课程教案 课程编码: SJ085408 总学时周学时: 16 / 16 开课时间: 2013年 5 月 6 日第 10 周至第 15 周 授课年级、专业、班级:2011级电子信息工程、自动化、电气工程及其自动化 使用教材: MATLAB7讲义 教研室: 自动化 授课教师: 温艳、郝保明、胡波 (2)课程进度计划表章 次内 容讲 授上 机 一MATLAB简介11二MATLAB的基本使用11三向量与数组及其基本运算11四矩阵的基本运算11五MATLAB程序设计11六字符串11七多项式11八图形处理11九十总学时88(3)教案正文专业软件实习(2)(M
2、ATLAB)第一章 MATLAB简介一、MATLAB的初步知识MATLAB最初是由Cleve Moler用Fortran语言设计的,有关矩阵的算法来自Linpack和Eispack课题的研究成果;现在的MATLAB程序是MathWorks公司用 C语言开发的。MATLAB作为美国 MathWorks公司开发的用于概念设计,算法开发,建模仿真,实时实现的理想的集成环境。是目前最好的科学计算类软件二、MATLAB的主要应用领域(一)数值分析。(二)数值和符号计算。(三)工程与科学绘图。(四)控制系统的设计与方针。(五)数字图像处理。(六)数字信号处理。(七)通讯系统设计与仿真。(八)财务与金融工程
3、。三、MATLAB的优点容易使用,可以由多种操作系统支持,丰富的内部函数,强大的图形和符号功能,可以自动选择算法,与其他软件和语言有良好的对接性。四、MATLAB的缺点 (一)运行效率较低由于MATLAB是一种合成语言,因此,与一般的高级语言相比,用MATLAB编写的程序运行起来时间往往要长一些。 (二)价格比较贵一般的用户可能支付不起它的高昂费用。但是,购买MATLAB的昂贵费用在很大程度上可以由使用它所编写的程序的价值抵消。 五、MATLAB 7的新功能提供了MATLAB、SIMULINK的升级以及其他最新的75个模块的升级,该版本不仅提高了产品质量,同时也提供了最新的用于数据分析、大规模
4、建模、固定点开发和编码等新特征。六、MATLAB 7的安装过程用户在购买到正版MATLAB 7后,可以按照相关的说明进行安装,安装过程相对比较简单。这里不在赘述。安装MATLAB 7必须具有由Mathworks公司提供的合法个人使用许可,如果没有使用许可,用户将无法安装MATLAB。七、MATLAB 7用户界面概述(一) MATLAB 7的主菜单(二)MATLAB 7的工具栏(三)窗口包括:1.命令窗口(Command History):用于输入命令,为命令输入提示符。2.命令历史窗口(Command History):记录输入的命令。3.工作间管理窗口(Workspace):显示当前计算机内
5、存中Matlab变量的名称。4.当前路径窗口(Current Directory):显示当前用户所在的路径。八、路径搜索MATLAB 7有一个专门用于寻找“.m”文件的路径搜索器。“.m”文件是以目录和文件夹的方式分布于文件系统中的,一部分“.m”文件的目录是MATLAB 7的子目录,由于MATLAB 7的一切操作都是在它的搜索路径(包括当前路径中进行的,所以如果调用的函数在搜索路径之外,MATLAB 7就会认为此函数并不存在。 (一)MATLAB 7的当前目录 在“命令”窗口中输入cd命令,并按Enter键确认,即显示当前MATLAB7工作所在目录。 cdd:MATLAB71work(二)查
6、看安装路径 installpath=matlabrootinstallpath =D:MATLAB6p5(三)MATLAB 7的路径搜索设置 选择MATLAB的主窗口中File | Set Path命令 ,进入到设置路径搜索的对话框 ,用户可以设置新的路径九、Matlab帮助系统(一)help函数(二)lookfor函数练习:1. 简述MATLABA7的各个窗口的作用。2. 查看 MATLAB 7的当前目录和安装路径 3. 使用help函数查找det函数的用法4. 使用lookfor函数查找含用关键字norm的相关内容。第二章MATLAB的基本使用一、简单的数学运算 (一)最简单的计算器使用法
7、 1.直接输入法 3*30+3*35+4*30+4*32ans = 4432.存储变量法 grade1=3*30grade1 = 90 grade2=3*35grade2 = 105 total=grade1+grade2total = 195(二)标点符号的使用标 点 符 号定 义标 点 符 号定 义;区分行,取消运行显示等.小数点以及域访问等,区分列,函数参数分隔符等连接语句:在数组中应用较多字符串的标识符号()指定运算优先级等=赋值符号矩阵定义的标志等!调用操作系统运算用于构成单元数组等%注释语句的标识二、数值运算符号符 号功 能实 例+加法1+2-减法1-2*乘法1*2/、除法1/2或
8、是21乘方21例:光明小学一年级有4个班,每班30人,二年级有3个班,每班35人,求该小学一二年级一共有多少人。4*30+3*35三、常用的操作命令clc: 清除工作窗clear: 清除内存变量quit: 退出save: 保存内存变量到指定文件。clf: 清除图形窗口cd: 显示MATLAB工作所在目录。 Installpath: 显示安装路径。四、常用函数三角函数:sin cos tan cot asin acos atan acot exp :指数函数 log:自然对数imag:复矩阵虚部real:复矩阵实部round:四舍五入mod:有符号求余rem:无符号求余sign :符号函数sqr
9、t:平方根abs:模练习:1. 练习使用常用指令。2. 设,计算下列各题(1) (2 (3) 3. 在指令窗中输入下面一段程序,功能是:画出衰减振荡曲线y=(e-t/3)sin3t及其他的包络线y0=(e-t/3)。T的取值范围是0,4。t=0:pi/50:4*pi;y0=exp(-t/3);y=exp(-t/3).*sin(3*t);plot(t,y,-r,t,y0,:b,t,-y0,:b)观察输出结果第三章 向量与数组及其基本运算一、向量的生成 (一) 向量的生成:在命令窗口中直接输入向量如:a=1,2,3,4a= 1 2 3 4 (二)等差元素向量的生成:如生成一个向量b=1,3,5,7
10、,9b=1:2:9 b= 1 3 5 7 9 其中,为起始值,为公差,为终止值二、向量的基本运算(一) 加(减),向量中每个元素的加(减)例如: a=1,2; b=3,5; a+b ans= 4 7(二) 点积(dot)、叉积(cross)和混合积例1:求dot(a,b) ans= 13叉积,要求变量维数至少三维例2:,求cross(a,b) ans=-36-3例3:,求 c=5,1,2;dot(a,cross(b,c)ans= -15三、数组及其基本运算(一)数组的生成:可通过自定义或利用matlab函数生成例如:建立数组A=1,2,3,4,5,可直接在matlab命令行中定义A=1,2,3
11、,4,5对于一些特殊的矩阵(如随机数据构成的矩阵)可利用相应的函数生成。例13随机生成一个数组A=rand(1,10)(二) 数组的运算数组的运算主要包括数组的排序、数值运算、关系运算和逻辑运算等1数组的排序:函数:sort;默认情况下对按升序排序。用法: sort(X):对数组X中的元素按升序排列dsort():降序例4,对X进行排列x=1,3,7,5,2sort(x)ans= 1 2 3 5 72数值运算数组运算符有矩阵运算符前面加一点来表示,数值运算包括:加(),减()乘()除(),乘方()。数组的加法(减法)与矩阵相同,因此运算符(,)既可以被矩阵接受也可以被数组接受。例15,求数组A
12、于B的乘积A=1,2,3; B=2,3,4; A.*Bans= 2 6 12.关系运算关系运算包括:小于()、小于等于()、大于等于(=)、等于(=)、不等于(=)。比较两个元素大小时,结果为1表示关系式为真;结果为0表示关系式为假。如,A=1,2,B=1,3A=B04.逻辑运算 逻辑运算有三种:与(&)、或(|)、非()。与(&)、或(|)可以比较两个数组的,非()为一元操作符。逻辑运算针对数组或矩阵中的每一个元素。如:A=1,0A则为0,1练习:已知,c=9,-1,4(1)求a和b的点积(2)求b和c的点叉积(3)求a、b和c的混合积首先生成一个110的随机数组A然后将第5个和第8个元素取
13、出,并对它们进行四则运算。设,求其特征值和特征向量A为5阶魔术矩阵,分别对A进行如下操作:(1)求A的逆;(2)求A的秩;(3)求A的迹设数组,求A与B的乘积第四章 矩阵的基本运算一、矩阵的生成(一)直接法:例1:如生成一个三阶矩阵: A=1,2,3;4,5,6;7,8,9:,表示一行中元素的分隔,;表示分行 A= 1 2 3 4 5 6 7 8 9(二)向量法:矩阵可以看成由多个向量的组合。如果向量内各数据之间成等差数列,则可利用冒号表达式建立一个向量,如例3。冒号表达式可以产生一个行向量,一般格式是: e1:e2:e3其中e1为初始值,e2为步长,e3为终止值。如生成向量1,2,3则可表示
14、为1:1:3矩阵 A可表示为:A=1:1:3;4:1:6;7:1:9二、矩阵的运算1.矩阵与矩阵的加(减)法:指矩阵各元素之间的加(减)法矩阵必须具有相同的阶加法用,减法用,数乘用*例2:,求,A=1,2;3,4; B=2,4;1,3; A+Bans= 3 6 4 7 3*A ans= 3 6 9 122.矩阵与矩阵的乘法:运算符号*,如果A是一个阶矩阵,D是一个阶矩阵,则为阶矩阵例3:,求A=1,2;3,4; D=1,2,3;4,5,6; A*D ans= 9 12 15 19 26 333.矩阵与矩阵的除法:一般情况下,AB:表示A*X=B的解;而B/A:表示x*A=B的解例4:,求及的解
15、A=1,2;3,4;B=1,2,3;4,5,6;D=9,12,15;19,26,33;X=AD X= 1.0000 2.0000 3.0000 4,0000 5.0000 6.0000Y=D/B Y= 1.0000 2.0000 3.0000 4.00004.矩阵的特征参数运算矩阵的乘方Sqrtm矩阵的开方Expm矩阵的指数运算Logm矩阵的对数运算Det矩阵的行列式Inv矩阵的逆Rank矩阵的秩Trace矩阵的迹Eig或eigs矩阵的特征值和特征向量Norm计算矩阵的范数例5:,求 A=1,2;3,4;inv(A)ans= -2.0000 1.0000 1.5000 -0.5000例6:求矩
16、阵A的特征值和特征向量用法一:E=eig(A) 生成有矩阵A的特征值所组成的一个列向量;用法二:V,D=eig(A) 生成两个矩阵,V:表示以矩阵A的特征向量作为列向量组成的矩阵,D:表示由矩阵A的特征值作为主对角线元素构成的对角矩阵E=eig(A)E= -0.3723 5.3723V,D=eig(A)V= -0.8246 -0.4160 0.5658 -0.9094D= -0.3723 0 0 5.3723 例7求矩阵A的范数;计算A的无穷范数norm(A,2)ans= 5.4650norm(A,inf)ans= 75.特殊矩阵的生成生成空矩阵Zeros生成矩阵Eye生成单位矩阵Ones生成
17、全矩阵Diag生成对角矩阵Rand生成服从0-1分布的随机矩阵Randn生成服从正态分布的随机矩阵Vander生成范德蒙德矩阵例8生成4行5列的零矩阵zeros(3,5)ans= 0 0 0 0 0 0 0 0 0 00 0 0 0 0例9生成一个取值在之间的行列随机矩阵分析: rand(3),可生成01之间的矩阵,而,之间的差为,因此*rand(3)可之间的随机矩阵,需要生成510之间的随机矩阵,需要将矩阵5*rand(3)向右平移个单位,即5+5*rand(3) 5+5*rand(3)习题:已知,c=9,-1,4(1)求a和b的点积(2)求b和c的点叉积(3)求a、b和c的混合积首先生成一
18、个110的随机数组A然后将第5个和第8个元素取出,并对它们进行四则运算。设,求其特征值和特征向量A为5阶魔术矩阵,分别对A进行如下操作:(1)求A的逆;(2)求A的秩;(3)求A的迹设数组,求A与B的乘积第五章 MATLAB程序设计一、 M文件的组成二、程序控制(一)顺序结构例1:a=1; b=2;c=3;s1=a+bs2=s1+cs3=s2/s1(二)选择语句:包含三种形式第1种形式为只有一种选择:结构如下if 表达式执行语句end第2种形式为只有两种选择:结构如下if 表达式执行语句1else执行语句2end第2种形式为只有3种或3种以上选择:结构如下if 表达式1表达式1为真时的执行语句
19、1elseif表达式2表达式2为真时的执行语句2elseif表达式3表达式3为真时的执行语句3else所有的表达式都为假时执行语句end例1:%该程序用于演示有2种选择时if-else-end语句的使用 function if two(x) if x0 fprintf(%f is a positive numbern,x) else fprintf(%f is not a positive numbern,x) end(三)分支语句switch 开关语句 Case条件语句 执行语句,执行语句 Case条件语句1,条件语句2,条件语句3, 执行语句,执行语句 Otherwise, 执行语句,执行
20、语句 endfunction lower1(method)switch method caselinear,bilinear disp(method is linear)case cubic disp(method is cubic) case nearest disp(method is nearest) otherwise disp(Unknown method.) end将上边的程序以lower1.m为文件名保存,在命令窗口中运行该文件。a=linear;lower1(a)Method is linear(四)for 循环语句 for i=表达式, 执行语句,执行语句 end例2:求1-
21、10的平方 for i=1:1:10x(i)=i2;end xx = 1 4 9 16 25 36 49 64 81 100for 循环语句可嵌套使用,如求解:打开M文件编辑窗口,输入程序如下,并将函数命名为forsum。在命令窗口中输入forsum,即可得到如下结果。(五)while循环语句while 表达式 执行语句end(六)人机交互命令break:中断命令:一般用在循环控制中。return:返回调用函数或键盘。continue:与break不同,系统只是不再执行相关的执行语句,而不会跳出当前循环。pause:暂停等待。input:提示用户从键盘输入数据、字符串或表达式。三、 函数(一)
22、主函数:M文件中的第1个函数为主函数。如果同一个M文件中有多个函数,则通常对第1个函数进行定义,定义方式如下:function f()其中,function :为函数定义。f为函数名(二)子函数:子函数的定义与主函数相同。例3,编制一个函数,要求任意输入两个数值后,用两个子函数分别求出它们的和与它们的绝对值的和,再将这两个和相乘。练习: 1简述使用M文件与在MATLAB“命令”窗口直接输入命令有何异同。 2. for 循环语句可嵌套使用,如求3用forend循环,编程求出1+3+5+101的值。4用while循环计算习题25建立阶跃函数。6求和:s=1+2+nstr=this is a str
23、ing另外,字符串内的单引号由两个连续的单引号来表示,例2如要表示:Its a stringstr=Its a stringstr= Its a string二、字符串操作 包括字符串元素的读取、连接、比较、查找、替换、转换等。(一)字符串元素的读取:因为字符串是数组,可用数组操作工具进行读取例3 读取字符串str的第6个元素str(6)ans= a例4 读取字符串str的第5-13字符str(5:13)ans= a string(二)字符串连接等操作例5连接字符串str1=This is 和字符串str2=a stingstr1=This isstr2= a stringstrcat(str
24、1, str2)ans= This is a string由于Matlab是采用C语言开发的,因此它的字符串操作与C语言基本相同函数名函数用途函数名函数用途Strcat连接字符串strvcat垂直连接字符串strcmp比较字符串大小strncmp比较字符串的前n个字符findstr在其他字符串中查找该字符串strjust证明字符数组strmatch查找可能匹配的字符串strrep用其他字符串代替该串deblank删除字符串内的空格blacks生成空的字符串iscellstr字符串的单元检验stringsStrings函数的帮助(三) 字符串比较字符串的比较主要由两个函数strcmp,实现。其中
25、,strcmp:比较两个字符串是否相等,当相等时,返回值为1,否则返回0。Strncmp:比较两个字符串前n个字符是否相等,当相等时,返回值为1,否则返回0。例6 words1=situate; words2=situp; N=strcmp(word1,word2) N= 0 (四)字符串的查找、替换 Matlab提供finstr、strfind等函数来实现查找和替换功能。findstr:会根据所给字符串中的字符来查找,返回字符的位置。如例7 在s=How much wood would a woodchuck chuck?,中查找字符a; s=How much wood would a wo
26、odchuck chuck?a1=findstr(s,a)a1= 21strfind(text,pattern):只能在text中查找pattern,并返回第一个相同字符的位置。 例8 在a中查找字符串s=How much wood would a woodchuck chuck?b1=strfind(a , s)b1= 返回结果为空,表示在a中不存在与s相同的字符串。(五)转换在matlab中,可利用num2str、int2str、str2num、str2double等函数实现字符串和数值之间的转换。例8 将数值2转换成字符2a=num2str(2)a=2输出结果中,a为字符型变量。练习:1 将字符串s1=this is a string, 中的字符a替换成A。2 将数值矩阵转换成字符矩阵。第七章 多项式包含多项式的表示,多项式的运算两部分。一、 多项式的表示方法在Matlab中多项式可通过向量来表示,对于多项式可以利用
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1