《matlab教程》PPT课件

上传人:ch****o 文档编号:244774262 上传时间:2024-10-06 格式:PPT 页数:340 大小:5.74MB
返回 下载 相关 举报
《matlab教程》PPT课件_第1页
第1页 / 共340页
《matlab教程》PPT课件_第2页
第2页 / 共340页
《matlab教程》PPT课件_第3页
第3页 / 共340页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,M,ATLAB,语言及其应用,Application of Matlab Language,10/6/2024,1,课程的作用,课程的目的,课程的特点,课程安排,10/5/2022,2,Application of Matlab Language,课程的作用,在欧美各,高等学校,,,Matlab,成为线性代数、自动控制理论、数字信号处理、时间序列分析、动态系统仿真、图像处理等诸多课程的基本教学工具,成为,本科生、硕士生和博士生的必须掌握的基本技能。,在,设计研究单位和工业部门,,,Matlab,已被广泛地用于研究和,解决各种具体的工程问题,。,可以预见,,Matlab,将在我国科学研究和工程应用中发挥越来越大的作用。,10/5/2022,3,Application of Matlab Language,讲授,MATLAB语言基础入门知识,,介绍MATLAB产品的体系、MATLAB桌面工具的使用方法,,重点介绍MATLAB的数据可视化、数值计算的基本步骤,以及,如何使用MATLAB语言编写整洁、高效、规范的程序。,并涉及到一些具体的,专业应用工具箱,(如:信号处理工具箱、图像处理工具箱等)。,通过本课程的学习,,了解、熟悉、掌握 MATLAB的基本编程方法,,,并具有初步的利用计算机处理、解决实际问题的能力,,为进一步学习后续的专业课程做好准备。,本课程的目的,( Objectives of This Course,),本课程的特点,( Features of This Course,),交叉性课程,是,计算机技术,、,数学理论,知识以及诸多,工程理论,知识的综合。,实践性课程。,内容多,课时少,要求同学上课认真听讲,要充分利用上机实践消化、理解、,掌握课上讲解内容。,10/5/2022,4,Application of Matlab Language,课程安排,课堂教学:共24学时;,(1-12周),上机试验:共24学时。,(2-13周,周二7-8节,九实401、402、403),学习成绩:,1),上机实验成绩占30%;,2),考勤 10% ;,3),考试60%,(随堂考试),。,主要参考书,精通MATLAB 6.5张志涌 等编著,北航出版,2003年,高等应用数学问题的Matlab求解 薛定宇等著,清华大学出版社,2004年,Matlab程序设计与应用 刘卫国主编,高等教育出版社,10/5/2022,5,Application of Matlab Language,授课宗旨,讲授,MATLAB,的通用功能。,寓教于例,由浅入深。,关于科学计算,着重强调理论概念、算法和实际计算三者之间的关系。,10/5/2022,6,Application of Matlab Language,第一讲,Matlab,概述,前言,Matlab软件概述,Matlab的桌面环境及入门知识,10/5/2022,7,Application of Matlab Language,1 Matlab概述,内容,Matlab发展历史,Matlab,产品家族,(,Matlab,family of products,),体系,Matlab 语言的特点。,目的,全面了解 Matlab软件包,激发对Matlab软件的学习兴趣。,10/5/2022,8,Application of Matlab Language,1.1 MATLAB的历史及影响,70,年代中期,,,Cleve,Moler,博土及其同事在美国国家基金会的帮助下,开发了,LINPACK,和,EISPACK,的,FORTRAN,语言子程序库,,这两个程序库代表了当时矩阵运算的最高水平。,到了,70,年代后期,,身为美国新墨西哥州大学计算机系系主任的,CIeve,Moler,,在给学生上线性代数课时,为了让学生能使用这两个子程序库,同时又不用在编程上花费过多的时间,开始着手用,FORTRAN,语言为学生编写使用,LINPACK,和,EISPACK,的接口程序,他将这个程序取名为,MATLAB,,,其名称是由,MATrix,和,LABoratory,(矩阵实验室)两个单词的前三个字母所合成,。,在,1978,年,,,Malab,就面世了。这个程序获得了很大的成功,受到了学生的广泛欢迎。在以后的几年里,,Matlab,在多所大学里作为教学辅助软件使用,并作为面向大众的免费软件广为流传。,Cleve Moler,10/5/2022,9,Application of Matlab Language,将,MATLAB,商品化的不是,Cleve Moler,而是一个名叫,Jack Little,的人。当免费的,MATLAB,软件到,Stanford,大学,,Jack Little,正在该校主修,控制,,便接触到了当时,MATLAB,,直觉告诉他,这是一个具有巨大发展潜力的软件。因此他在毕业沒多久,就开始,用,C,语言重新编写了,MATLAB,的核心。,在,Moler,的协助下,于,1984,年成立,MathWorks,公司,首次推出,MATLAB,商用版。在其商用版推出的初期,,MATLAB,就以其优秀的品质(,高效的数据计算能力和开放的体系结构,)占据了大部分数学计算软件的市场,原来应用于控制领域里的一些封闭式数学计算软件包(如英国的,UMIST,、瑞典的,LUND,和,SIMNON,、德国的,KEDDC,)就纷纷被淘汰或在,MATLAB,上重建。,Jack Little,10/5/2022,10,Application of Matlab Language,Cleve Moler,至今仍是该公司的首席科学家,,他以,60,多,岁的高龄,还常常亲自进行撰写程序的工作,非常令人佩服。如果你有数值运算方面的高水平问题,寄到,MathWorks,后,大部份还是会由,Cleve,Moler,亲自回答。在,1994,年,,Pentium,芯片曾发生,Fdiv,的,bug,, 当时,Cleve,Moler,是第一个以软件方式解决此,bug,的人,曾一时脍炙人口,。,在公司初创的五年,,Jack Little,非常辛苦,常常身兼数职(董事长、总经理、推销、程序开发等),但公司一直稳定发展,从当初的一人公司,到,1993,年的,200,人,到,2000,年的,500,余人,,到,2005,年公司员工达到了,1300,人,,不但打,败,其他竞争软件,而且前景一片欣欣向荣。根据,Jack Little,个人,说,法,,MATLAB,早期成功的两大因素是:选用了,C,语,言及选定,PC,为主要平台,这似乎和微软的成功有相互呼应之妙。,MathWorks,公司,目前仍然是私人企业,并未上市,这和,Jack Little,个人理念有关,他认为,MATLAB,的设计方向应该一直是以顾客的需求与软件的完整性为首要目标,,而不是以盈利为主要,目的,,因此,MATLAB,一直是在稳定中求进步,而不会因为上市而遭受股东左右其发展方向。这也是为什么,MATLAB,新版本总是,姗姗来,迟,的,原因,因为他们不会因为市场的需求而推出不成熟的产品。此外,由于,Jack Little,保守的个性,也使得,MathWorks,不曾跨足,MATLAB/Simulink,以外的行业,当前商场上纷纷扰扰的并购或分家,,MathWorks,完全是绝缘体。,10/5/2022,11,Application of Matlab Language,1992,年,支持,Windows 3.x,的,MATLAB 4.0,版本推出,增加了,Simulink,,,Control,,,Neural Network,,,Signal Processing,等专用工具箱。,1993,年,11,月,,MathWorks,公司推出了,Matlab,4.1,,其中主要增加了符号运算功能。当升级至,Matlab,4.2c,,这一功能在用户中得到广泛应用。,1997,年,,Matlab,5.0,版本问世了,实现了真正的,32,位运算,加快数值计算,图形表现有效。,2001,年初,,MathWorks,公司推出了,Matlab,6.0,(,R12,)。,2002,年,7,月,推出了,Matlab,6.5(R13),,在这一版本中,Simulink,升级到了,5.0,,性能有了很大提高,另一大特点是推出了,JIT,程序加速器,,Matlab,的计算速度有了明显的提高。,2005,年,9,月,推出了,MAILAB 7.1(Release14 SP3),,在这一版本中,Simulink,升级到了,6.3,,软件性能有了新的提高,用户界面更加友好。值得说明的是,,Matlab,V7.1,版采用了更先进的数学程序库,即“,LAPACK”,和“,BLAS”,。,目前,,Matlab,软件支持多种系统平台,如常见的,WindowsNT,/XP,、,UNIX,、,Linux,等。,Matlab版本的发展,10/5/2022,12,Application of Matlab Language,MATLAB就是这样经过了近30年的专门打造、20多年的千锤百炼,它以高性能的,数组运算(包括矩阵运算),为基础,不仅实现了大多数数学算法的,高效运行函数,和,数据可视化,,而且提供了非常高效的,计算机高级编程语言,,在用户可参与的情况下,,各种专业领域的工具箱,不断开发和完善,MATLAB取得了巨大的成功,已广泛应用于,科学研究、工程应用,用于数值计算分析、系统建模与仿真,。,早在,20世纪90年代初,,欧美等发达国家的大学就将MATLAB列为一种必须掌握的编程语言。近几年来,国内的很多大学也将MATLAB列为了本科生必修课程。,与Maple、Mathematica数学计算软件相比,MATLAB以数值计算见长,而Maple等以符号运算见长,能给出解析解和任意精度解,而处理大量数据的能力远不如MATLAB。,MATLAB软件功能之强大、应用之广泛,已成为为,21世纪最为重要的科学计算语言,。可见学习掌握这一工具的重要性。,10/5/2022,13,Application of Matlab Language,MATLAB产品由若干模块组成,不同的模块完成不同的功能,其中有:,实际上MATLAB本身就是一个极其丰富的资源库,那么应该从哪一部分开始着手、学习使用MATLAB呢?这就有必要了解这一软件产品的体系结构 。,MATLAB Compiler这种编译器可以将MATLAB程序文件编译生成标准的C/C+语言文件,而生成的标准的C/C+文件可以被任何一种C/C+编译器编译生成函数库或可执行文件,以提高程序的运行效率。,1.2 MATLAB产品的体系结构,MATLAB,MATLAB Toolboxes,MATLAB Compiler,Simulink,Simulink Blocksets,Real-Time Workshop (RTW),Stateflow,Stateflow Coder,由这些模块产品之间的关系可以图1.1表示。,图1.1 MATLAB产品体系结构,围绕着MATLAB这个计算核心,形成了诸多针对不同应用领域的算法程序包,被称为专用工具箱(Toolbox),这些工具箱的列表以及每个工具箱的使用详见MATLAB在线帮助文档。MATLAB本身所提供的工具箱大概有40多个,另外还有其他公司或研究单位开发提供的工具箱,这些工具箱的总数已有100多个,而且新的工具箱还在不断增加。如果你有特别的应用领域,可以首先到网上查找是否已有相关的工具箱,很可能已有人将你要做的应用程序作成工具箱了。,Simulink是窗口图形方式的、专门用于连续时间或离散时间的动态系统建模、分析和仿真的核心。,Real-Time Workshop是一种实时代码生成工具,它能够根据Simulink模型生成程序源代码,并打包、编译所生成的源代码生成实时应用程序。,从现有的Simulink 和Stateflow自动生成C语言程序代码的功能、定点运算模块集(Fixed-point Blockset)与C语言程序代码到VHDL(Very High Speed Integrated Circuit Hardware Description Language,一种标准的硬件电路设计语言,)的自动转换功能,可以看出,高级的系統仿真或低级的芯片算法设计,都可用MATLAB、Simulink、Stateflow及相关的工具箱来完成。,Stateflow是基于有限状态机理论针对复杂的事件驱动系统进行建模、仿真的工具。,Stateflow Coder是基于Stateflow状态图生成高效、优化的程序代码。,围绕着Simulink仿真核心所开发的应用程序包,称为模块集(Blocksets),MATLAB产品提供许多专用模块集,如Communication Blockset、DSP Blockset、SimPowerSystem Blockset、Signal Processing Blockset等,详见MATLAB在线帮助文档。,MATLAB是MATLAB产品家族的计算核心与基础,是集高性能数值计算与数据可视化于一体的高效编程语言。,10/5/2022,14,Application of Matlab Language,1.3,MATLAB,编程语言的特点,语法规则简单,。,尤其内定的编程规则,与其他编程语言(如,C,、,Fortran,等)相比更接近于常规数学表示。对于数组变量的使用,不需类型声明,无需事先申请内存空间。,MATLAB语言主要有以下几个特点:,MATLAB,基本的语言环境提供了数以千计的计算函数,,,极大的提高了用户的编程效率。如,一个,fft,函数即可完成对指定数据的快速傅里叶变换,这一任务如果用,C,语言来编程实现的话,至少要用几十条,C,语言才能完成。,因此,MATLAB是一个简单易用、功能强大的高效编程语言。,平台无关性(可移植性),。,MATLAB,软件可以运行在很多不同的计算机系统平台上,如,Windows Me/NT/2000/XP,、很多不同版本的,UNIX,以及,Linux,。无论你在哪一个平台上编写的程序都可以运行在其它平台上,对于,MATLAB,数据文件也一样,是平台无关的。极大保护了用户的劳动、方便了用户。,其绘图功能也是平台无关的,。无论任何系统平台,只要,MATLAB,能够运行,其图形功能命令就能正常运行。,MATLAB,是一种脚本式,(,scripted,),的解释型语言,,,无论是命令、函数或变量,只要在命令窗口的提示符下键入,并“回车(,Enter,)”,,MATLAB,都予以解释执行。,10/5/2022,15,Application of Matlab Language,功能强大,数值运算优势,符号运算优势(Maple),强大的2D、3D数据可视化功能,许多具有算法自适应能力的功能函数,10/5/2022,16,Application of Matlab Language,语言简单、内涵丰富,语言及其书写形式非常接近于常规数学书写形式;,其操作和功能函数指令就是常用的计算机和数学书上的一些简单英文单词表达的,如:help、clear等;,完备的帮助系统,易学易用。,扩充能力、可开发能力较强,MATLAB完全成了一个开放的系统,用户可以开发自己的工具箱,可以方便地与Fortran、C等语言接口,编程易、效率高,Matlab以数组为基本计算单元,具有大量的算法优化的功能函数,10/5/2022,17,Application of Matlab Language,2 MATLAB的桌面环境及入门知识,启动与退出MATLAB,命令窗口及使用,数值表示、变量、表达式,命令历史窗口,工作空间,获取在线帮助,10/5/2022,18,Application of Matlab Language,2.1 启动与退出MATLAB,启动MATLAB,直接用鼠标双击桌面上MATLAB7.1图标,或Windows桌面的“开始”“所有程序”“MATLAB7.1” “MATLAB7.1”。,退出MATLAB,关闭MATLAB桌面,在命令窗口执行quit或exit命令,MATLAB缺省桌面(见下页),10/5/2022,19,Application of Matlab Language,菜单栏,工具栏,文件编辑窗口,工作空间,历史命令,窗口,Start,菜单,命令窗口,命令提示符,2.1 启动与退出MATLAB,(续),10/5/2022,20,Application of Matlab Language,2.2 命令窗口的使用,激活命令窗口。,“,”,与闪烁的光标一起表明系统就绪,等待输入。,命令窗口脱离,MATLAB,桌面。,简单计算,【,例,2.2-1】,计算,(,1,)在,MATLAB,命令窗口输入,以下内容:,(12+2*(7-4)/32,(,2,)按,【Enter】,键,指令执行。,(,3,)返回的计算结果:,ans,=,2,10/5/2022,21,Application of Matlab Language,2.2 命令窗口 (续),说明,在命令窗口,【Enter】,键提交命令执行。,Matlab,所用运算符(如,+,、,-,、,等)是各种计算程序中常见的。,计算结果中的“,ans,”,是英文“,answer”,的一种缩写,其含义就是“运算答案”。,ans,是,Matlab,的一个预定义变量。,10/5/2022,22,Application of Matlab Language,2.2 命令窗口,(续),简单计算(续),【例2.2-2】计算sin(45,),sin(45*pi/180),Matalb,中正弦函数,sin,就是常见的正弦函数。,它的参数值是以“弧度”为单位的。,pi,也是,Matalb,的预定义变量。,pi=3.14159,Matlab,对字母大小写是敏感的。,【例2.2-3】计算 的值,其中x=4.92。,sqrt(2*exp(4.92+0.5)+1),Matalb,中开平方,sqrt(x,),,是英文,square root,的缩写,。,Matalb,中指数函数,exp(x,),,常见的表达方式,。,ans=,0.7071,ans=,21.2781,10/5/2022,23,Application of Matlab Language,2.2 命令窗口,(续),“,clc,”,清除窗口显示内容的命令,。,【例2.2-4】计算 的值。,y=2*sin(0.3*pi)/(1+sqrt(5),y=,0.5000,【例2.2-5】计算 的值。,y=2*cos(0.3*pi)/(1+sqrt(5),y=,0.3633,命令行编辑,“”键调回已输入过命令。,修改。,10/5/2022,24,Application of Matlab Language,2.2 命令窗口,(续),【例2.2-5】计算半径为5.2m的圆的周长和面积。,radius=5.2; %圆的半径,area=pi*5.22,circle_len=2*pi*5.2,area =,84.9487,circle_len =,32.6726,以上两例,命令行中用到了等号“,=”,。,计算结果不再赋给“,ans,”,,而是赋给用户指定的变量,y,、,area,、,circle_len,。,无论是预定义变量还是用户自定义变量都被存储在系统的工作空间内,即系统定义的一个存储窗口变量的内存空间。,Who,、,whos,命令用来显示工作空间的变量,clear,命令用来清除工作空间的变量。,10/5/2022,25,Application of Matlab Language,2.2 命令窗口,(续),who,whos,Your variables are:,ans circle_len y,area radius,Name Size Bytes Class,ans 1x1 8 double array,area 1x1 8 double array,circle_len 1x1 8 double array,radius 1x1 8 double array,y 1x1 8 double array,Grand total is 5 elements using 40 bytes,10/5/2022,26,Application of Matlab Language,2.2 命令窗口,(续),clear y,who,Your variables are:,ans circle_len,area radius,clear ans area,whos,Your variables are:,Name Size Bytes Class,circle_len 1x1 8 double array,radius 1x1 8 double array,Grand total is 2 elements using 16 bytes,10/5/2022,27,Application of Matlab Language,2.2 命令窗口,(续),数值显示格式设置,缺省显示格式:简洁的短(short g)格式,窗口命令及语法格式:format 显示格式关键字,如:format long %15位数字显示,常见通用命令,命令含义,clc清除命令窗口的显示内容,clear 清除Matlab工作空间中保存的变量,who或whos显示Matlab工作空间中的变量信息,dir显示当前工作目录的文件和子目录清单,cd显示或设置当前工作目录,type显示指定m文件的内容,help或doc获取在线帮助,quit或exit关闭/推出MATALB,10/5/2022,28,Application of Matlab Language,2.3 工作空间,查看工作空间内存变量,可以由who、whos 。,命名新变量。,修改变量名,删除变量,绘图,保存变量数据,装入数据,10/5/2022,29,Application of Matlab Language,2.4 历史窗口,历史窗口:,首先,记录每次启动时间,并,记录在命令窗口输入命令,,此次运行期间,输入的所有命令被记录为一组,并以此次启动时间为标志。,使用历史窗口:,可以查看命令窗口输入过的命令或语句,可以选择一条或多条命令执行拷贝、执行、创建,M,文件等。,要清除历史记录,可以选择Edit菜单中的Clear Command History 命令,10/5/2022,30,Application of Matlab Language,2.5 当前目录窗口和搜索路径,当前目录窗口:,指Matlab运行时的工作目录。,只有在当前目录和搜索路径下的文件、函数才可以被运行和调用。,如果没有特殊指明,数据文件也将存放在当前目录下;,用户可以将自己的工作目录设置成当前目录,从而使得所有操作都在当前目录中进行。,10/5/2022,31,Application of Matlab Language,搜索路径:,指Matlab执行过程中对变量、函数和文件进行搜索的路径。,在File菜单中选择Set Path命令或在命令窗口输入pathtool命令,出现搜索路径设置对话框:,!修改完搜索路径后,需要进行保存。,10/5/2022,32,Application of Matlab Language,2.6 获取在线帮助,MATLAB提供的帮助信息有两类,简单纯文本帮助信息,help,lookfor,(条件比较宽松),例:inverse,窗口式综合帮助信息(文字、公式、图形),doc,helpwin,10/5/2022,33,Application of Matlab Language,【功能演示-1】,求方程,的全部根。,p = 2,0,-3,71,-9,13;,建立多项式系数向量,x = roots(p);,求根,x =,-3.4914,1.6863 + 2.6947i,1.6863 - 2.6947i,0.0594 + 0.4251i,0.0594 - 0.4251i,10/5/2022,34,Application of Matlab Language,【功能演示-2】求解线性方程组,a = 2,3,-1;8,2,3;45,3,9;,建立系数矩阵a,b = 2;4;23;,建立列向量b,x = inv(a)*b,x =,0.5531,0.2051,-0.2784,10/5/2022,35,Application of Matlab Language,符号计算,syms x y z,建立符号变量,x,y,z=solve(2*x+3*y-z-2,8*x+2*y+3*z-4,45*x+3*y+9*z-23),x =,151/273,y =,8/39,z =,-76/273,10/5/2022,36,Application of Matlab Language,【功能演示-3】求解定积分,求解,I=,quad(x.*log(1+x),0,1),ans =,0.250,或,syms x,nt(x*log(1+x),0,1),ans =,1/4,10/5/2022,37,Application of Matlab Language,【功能演示-4】多项式曲线拟合,考虑如下 x-y 一组实验数据:,x=1, 2, 3, 4, 5, 6, 7, 8, 9, 10,y=1.2, 3, 4, 4, 5, 4.7, 5, 5.2, 6, 7.2,注:,一次多项式拟合:,p1 = polyfit(x,y,1),三次多项式拟合:,p3 = polyfit(x,y,3),plot 原始数据、一次拟合曲线和三次拟合曲线,x2=1:0.1:10;,y1=polyval(p1,x2),y3=polyval(p3,x2),plot( x, y, *, x2, y1, :, x2, y3),10/5/2022,38,Application of Matlab Language,拟合曲线图,由图可见,三次拟合结果较好。,10/5/2022,39,Application of Matlab Language,2.3 数值表示、变量及表达式,数值的记述,Matlab的数只采用习惯的十进制表示,可以带小数点和负号;其缺省的数据类型为双精度浮点型(double)。,例如:3 -10 0.001 1.3e10 1.256e-6,变量命令规则,变量名、函数名对字母的大小写是敏感的。如,myVar,与,myvar,表示两个不同的变量。,变量名第一个字母必须是英文字母。,变量名可以包含英文字母、下划线和数字。,变量名不能包含空格、标点。,变量名最多可包含,63,个字符(,6.5,及以后的版本)。,10/5/2022,40,Application of Matlab Language,2.3 数值表示、变量及表达式,(续),Matlab预定义的变量,变量名,意义,ans,最近的计算结果的变量名,eps,MATLAB定义的正的极小值=2.2204e-16,pi,圆周率,inf,值,无限大,i或j,虚数单元,sqrt(-1),NaN,非数,0/0、/,说明,每当,MATLAB,启动完成,这些变量就被产生。,MATLAB,中,被,0,除不会引起程序中断,给出报警的同时用,inf,或,NaN,给出结果。,用户只能临时覆盖这些预定义变量的值,,Clear,或重启,MATLAB,可恢复其值。,10/5/2022,41,Application of Matlab Language,2.3 数值表示、变量及表达式,(续),运算符和表达式,运算,数学表达式,MATLAB运算符,MATLAB表达式,加,a+b,+,a+b,减,a-b,-,a-b,乘,axb,*,a*b,除,a/b或ab,/或,a/b或ab,幂,ab,说明,Matlab,用“,”,和”,/”,分别表示“左除”和“右除”。对标量而言,两者没有区别。对矩阵产生不同影响。,MATLAB,表达式的书写规则与“手写方式”几乎完全相同。,表达式按与常规相同的优先级自左至右执行运算。,优先级:指数运算级别最高,乘除次之,加减最低。,括号改变运算的次序。,10/5/2022,42,Application of Matlab Language,2.3 数值表示、变量及表达式,(续),复数及其运算,MATLAB中复数的表达:z=a+bi,其中a、b为实数。,MATLAB把复数作为一个整体,象计算实数一样计算复数。,【例2.3-1】复数z1=3+4i,z2=1+2i, z3=,计算,z1=3+4*i, z2=1+2*i, z3=2*exp(i*pi/6), z=z1*z2/z3,z_real=real(z), z_image=imag(z),z_angle=angle(z), z_length=abs(z),10/5/2022,43,Application of Matlab Language,课堂总结,对MATALB整个软件产品进行了概述,历史发展,软件产品家族体系构成,M语言的特点,MATLAB的入门知识,MATLAB桌面,MATLAB数值的记述和数据显示格式,变量及其命名规则,运算符及表达式,常用的MATLAB命令,在线帮助的使用,10/5/2022,44,Application of Matlab Language,思考题,简述,MATALB,软件的功能及特点。,简述,MATALB,变量的命名规则。,熟悉课件中的例子。,10/5/2022,45,Application of Matlab Language,Matlab语言及其应用,第,2,讲,10/6/2024,46,实验安排,10/5/2022,47,Application of Matlab Language,工作空间,Matlab系统界面,10/5/2022,48,Application of Matlab Language,2.2 命令窗口,(续),【例2.2-5】计算半径为5.2m的圆的周长和面积。,radius=5.2; %圆的半径,area=pi*5.22,circle_len=2*pi*5.2,area =,84.9487,circle_len =,32.6726,以上两例,命令行中用到了等号“,=”,。,计算结果不再赋给“,ans,”,,而是赋给用户指定的变量,y,、,area,、,circle_len,。,无论是预定义变量还是用户自定义变量都被存储在系统的工作空间内,即系统定义的一个存储窗口变量的内存空间。,Who,、,whos,命令用来显示工作空间的变量,clear,命令用来清除工作空间的变量。,10/5/2022,49,Application of Matlab Language,2.2 命令窗口,(续),who,whos,Your variables are:,circle_len area radius,Name Size Bytes Class,area 1x1 8 double array,circle_len 1x1 8 double array,radius 1x1 8 double array,Grand total is 3 elements using 24 bytes,10/5/2022,50,Application of Matlab Language,2.2 命令窗口,(续),clear radius,who,Your variables are:,circle_len area,clear area,whos,Your variables are:,Name Size Bytes Class,circle_len 1x1 8 double array,Grand total is 1 elements using 8 bytes,10/5/2022,51,Application of Matlab Language,2.2 命令窗口,(续),数值显示格式设置,缺省显示格式:简洁的短(short g,7位有效数字)格式,窗口命令及语法格式:format 显示格式关键字,如:format long,%15位数字显示,常见通用命令,命令含义,clc清除命令窗口的显示内容,clear 清除Matlab工作空间中保存的变量,who或whos显示Matlab工作空间中的变量信息,dir显示当前工作目录的文件和子目录清单,cd显示或设置当前工作目录,type显示指定m文件的内容,help或doc获取在线帮助,quit或exit关闭/推出MATALB,10/5/2022,52,Application of Matlab Language,2.3 工作空间,查看工作空间内存变量,可以由who、whos 。,命名新变量,修改变量名,删除变量,绘图,保存变量数据,装入数据,10/5/2022,53,Application of Matlab Language,2.4 历史窗口,历史窗口:,首先,记录每次启动时间,并,记录在命令窗口输入命令,,此次运行期间,输入的所有命令被记录为一组,并以此次启动时间为标志。,使用历史窗口:,可以查看命令窗口输入过的命令或语句,可以选择一条或多条命令执行拷贝、执行、创建,M,文件等。,要清除历史记录,可以选择Edit菜单中的,Clear Command History,命令,10/5/2022,54,Application of Matlab Language,2.5 当前目录窗口和搜索路径,当前目录窗口:,指Matlab运行时的工作目录。,只有在,当前目录,和,搜索路径下,的文件、函数才可以被运行和调用。,如果没有特殊指明,数据文件也将存放在,当前目录,下;,用户可以将自己的工作目录设置成当前目录,从而使得所有操作都在当前目录中进行。,10/5/2022,55,Application of Matlab Language,搜索路径:,指Matlab执行过程中对变量、函数和文件进行搜索的路径。,在File菜单中选择,Set Path命令,或在命令窗口输入,pathtool,命令,出现搜索路径设置对话框:,!修改完搜索路径后,需要进行保存。,10/5/2022,56,Application of Matlab Language,2.6 获取在线帮助,MATLAB提供的帮助信息有两类,简单纯文本帮助信息,help,lookfor,(条件比较宽松),例:inverse,窗口式综合帮助信息(文字、公式、图形),doc,helpwin,10/5/2022,57,Application of Matlab Language,【功能演示-1】求方程的根,求方程,的全部根。,p = 2,0,-3,71,-9,13;,建立多项式系数向量,x = roots(p);,求根,x =,-3.4914,1.6863 + 2.6947i,1.6863 - 2.6947i,0.0594 + 0.4251i,0.0594 - 0.4251i,10/5/2022,58,Application of Matlab Language,【功能演示-2】求解线性方程组,a = 2,3,-1;8,2,3;45,3,9;,建立系数矩阵a,b = 2;4;23;,建立列向量b,z,= inv(a)*b,z =,0.5531,0.2051,-0.2784,10/5/2022,59,Application of Matlab Language,符号计算,syms x y z,建立符号变量,x,y,z=solve(2*x+3*y-z-2,8*x+2*y+3*z-4,45*x+3*y+9*z-23),x =,151/273,y =,8/39,z =,-76/273,10/5/2022,60,Application of Matlab Language,【功能演示-3】求解定积分,求解,I,=,quad(x.*log(1+x),0,1),ans =,0.250,或,syms x,int(x*log(1+x),0,1),ans =,1/4,10/5/2022,61,Application of Matlab Language,【功能演示-4】多项式曲线拟合,考虑如下 x-y 一组实验数据:,x=1, 2, 3, 4, 5, 6, 7, 8, 9, 10,y=1.2, 3, 4, 4, 5, 4.7, 5, 5.2, 6, 7.2,注:,一次多项式拟合:,p1 = polyfit(x,y,1),三次多项式拟合:,p3 = polyfit(x,y,3),plot 原始数据、一次拟合曲线和三次拟合曲线,x2=1:0.1:10;,y1=polyval(p1,x2),y3=polyval(p3,x2),plot( x, y, *, x2, y1, :, x2, y3),10/5/2022,62,Application of Matlab Language,拟合曲线图,由图可见,三次拟合结果较好。,10/5/2022,63,Application of Matlab Language,第2章 Matlab数据及其运算,Matlab数据类型非常丰富,除,数值型,、,字符型,等基本数据类型外,还有,结构体,、,单元,等更为复杂的数据类型。,各种数据类型都以矩阵形式存在,,矩阵,是Matlab最基本的数据对象,并且矩阵的运算是定义在,复数域,上的。,10/6/2024,64,2.1 数值表示、变量及表达式,数值的记述,Matlab的数只采用习惯的十进制表示,可以带小数点和负号;其缺省的数据类型为,双精度浮点型,(double)。,例如:3 -10 0.001 1.3e10 1.256e-6,变量命令规则,变量名、函数名对字母的大小写是敏感的。如,myVar,与,myvar,表示两个不同的变量。,变量名,第一个字母必须是,英文字母,。,变量名可以包含,英文字母、下划线和数字,。,变量名,不能包含空格、标点,。,变量名最多可包含,63,个,字符(,6.5,及以后的版本)。,10/5/2022,65,Application of Matlab Language,2.1 数值表示、变量及表达式 (续),Matlab预定义的变量,变量名,意义,ans,最近的计算结果的变量名,eps,MATLAB定义的正的极小值=2.2204e-16,pi,圆周率,inf,值,无限大,i或j,虚数单元,sqrt(-1),NaN,非数,0/0、/,说明,每当,MATLAB,启动完成,这些变量就被产生。,MATLAB,中,被,0,除不会引起程序中断,给出报警的同时用,inf,或,NaN,给出结果。,用户只能临时覆盖这些预定义变量的值,,Clear,或重启,MATLAB,可恢复其值。,10/5/2022,66,Application of Matlab Language,2.1数值表示、变量及表达式 (续),运算符和表达式,运算,数学表达式,MATLAB运算符,MATLAB表达式,加,a+b,+,a+b,减,a-b,-,a-b,乘,axb,*,a*b,除,a/b或ab,/或,a/b或ab,幂,ab,说明,Matlab,用,“,”,和”,/”,分别表示,“左除”和“右除”,。对标量而言,两者没有区别。对矩阵产生不同影响。,MATLAB,表达式的书写规则与“手写方式”几乎完全相同。,表达式按与常规相同的优先级自左至右执行运算。,优先级:指数运算级别最高,乘除次之,加减最低。,括号改变运算的次序。,10/5/2022,67,Application of Matlab Language,2.1 数值表示、变量及表达式 (续),复数及其运算,MATLAB中复数的表达:,z=a+bi,,其中a、b为实数。,MATLAB把复数作为一个整体,象计算实数一样计算复数。,【例2.3-1】,复数z1=3+4i,z2=1+2i, z3=,计算,z1=3+4*i, z2=1+2*i, z3=exp(i*pi/6), z=z1*z2/z3,z_real=real(z), z_image=imag(z),z_angle=angle(z), z_length=abs(z),10/5/2022,68,Application of Matlab Language,2.2 Matlab矩阵(数组)的表示,数组的概念,一维数组变量的创建,二维数组变量的创建,数组元素的标识与寻访,数组运算,多维数组,10/5/2022,69,Application of Matlab Language,2.2.1. 数组(array)的概念,数组定义:,按,行(row),和,列(column),顺序排列的实数或复数的有序集,被称为,数组,。,数组中的任何一个数都被称为这个数组的,元素,,由其所在的行和列标识,这个标识也称为数组元素的,下标或索引,。Matlab将,标量,视为,11的数组。,对m行、n列的2维数组a:,计为mn的数组a;,*,行标识、列标识均从,1,开始;,行标识从上到下递增;,列标识从左到右递增。,1,2,3,4,5,2,22,23,24,25,3,32,33,34,35,4,42,43,44,45,a(3, 4)=34,row is first,a=,10/5/2022,70,Application of Matlab Language,数组的分类,一维数组,,也称为向量(vector) 。,行向量(row vector)、列向量(column vector)。,二维数组,(矩阵matrix)。,多维数组,。,有效矩阵,:每行元素的个数必须相同,每列元素的个数也必须相同。,2.2.1. 数组(array)的概念,10/5/2022,71,Application of Matlab Language,、数组(array)的概念 (续),行向量,列向量,a(2,1)=3,a(1,2)=2,b(3)=3,c(2)=2,10/5/2022,72,Application of Matlab Language,、创建一维数组变量,第一种方法:使用方括号“ ”操作符,【例2-1】,创建数组(行向量)a=1 3 pi 3+5i,a=1 3 pi 3+5*i,%or a=1, 3, pi, 3+5*i,a=,1.0000 3.0000 3.1416 3.0000 + 5.0000i,所有的向量元素必须在操作符“ ”之内;,向量元素间用,空格,或英文的,逗点“,”,分开。,第二种方法:使用冒号“:”操作符,【例2-2】,创建以110顺序排列整数为元素的行向量b。b=1:10,b=1 2 3 4 5 6 7 8 9 10,10/5/2022,73,Application of Matlab Language,、创建一维数组变量,(续),【例2-3】,键入并执行c=1:2:10和d=1:2:9, c=1:2:10,c=1 3 5 7 9,d=1:2:9,d= 1 3 5 7 9,利用冒号“:”操作符创建行向量的基本语法格式:,x=Start:Increment:End,Start,表示新向量x的第一个元素;,新向量x的最后一个元素不能大于,End,;,Increment,可正可负,若负,则必须,StartEnd,;若正,则必须,StartEnd,,否则创建的为空向量。,若,Increment=1,则可简写为:,x=Start:End,。,10/5/2022,74,Application of Matlab Language,、创建一维数组变量,(续),第三种方法:利用函数linspace,函数linspace的基本语法,x= linspace(x1, x2, n),该函数生成一个由n个元素组成的行向量;,x1,为其第一个元素;,x2,为其最后一个元素;,x1、x2之间元素的,间隔=(x2-x1)/(n-1),。,如果忽略参数n,则系统默认生成,100个,元素的行向量。,【例2-4】,键入并执行,x= linspace(1,2,5),x=1.0000 1.2500 1.5000 1.7500 2.0000,同学们可以在实验时察看,x= linspace(1,2),执行结果。,10/5/2022,75,Application of Matlab Language,、创建一维数组变量,(续),第四种方法:利用函数logspace,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!