版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、MATLAB基础及应用陆伟艳 2016.01mixiao_课程的性质、目的和任务 Matlab 是一个可视化的计算程序,被广泛地应用在科学运算领域里。它具有功能强大、使用简单等特点,内容包括:数值计算、符号计算、数据拟合、图形图像处理、系统模拟和仿真分析等功能。此外,用Matlab还可以进行动画设计、有限元分析等。 本课程的目的是使学生能够运用Matlab进行一般的工程计算,掌握Matlab的基本技术(基本计算、矩阵处理、符号运算和图形显示技术等),为将来从事工程技术方面的产品开发、科学研究、工程计算和管理打下一定的基础。教学基本要求1.了解Matlab语言特点、熟悉Matlab视窗环境、掌握
2、Matlab帮助功能的基本使用方法。2.掌握Matlab中变量和函数的有关概念、以及矩阵和多项式的构造方法。掌握数组运算和矩阵运算,并能够使用常用的几种常用的函数进行简单问题的求解。3.搞清符号变量和符号表达式的定义,并能用符号运算解决一般的微积分和方程求解问题。掌握Matlab程序设计的几种基本控制转移语句,学会使用简单M文件的编程。4.掌握二维平面图形和三维立体图形的绘制方法,进行数据可视化处理。理解用户图形界面程序的构造,掌握编程方法。5.能够利用Matlab进行简单的通讯与电子工程项目的仿真第1章 Matlab概述1.1、Matlab简介 1.2、Matlab的工作环境 1.3、Mat
3、lab帮助系统1.1 MATLAB简介-发展1970年代中期 ,Cleve Moler博士开发了 : EISPACK(特征值求解的程序库) LINPACK(解线性方程的程序库 ) 1970年代后期, Cleve Moler编写接口程序 :MATLAB,即MATrix和LABoratory前3个字母的组合,是“矩阵实验室”的缩写,它是一种以矩阵运算为基础的交互式程序语言。 1983年春,Cleve Moler和John Little用C语言开发了第二代专业版 84年,两人成立了Mathworks公司,正式把MATLAB推向市场。 1.1 MATLAB简介-发展1988年,推出MATLAB3.x版
4、本(DOS版)。 1993年,推出MATLAB4.0版本(Win3.x)。 1997年,推出MATLAB5.0版(Windows95)。 1999年,推出MATLAB5.3版本R11(流行较广)。 2000年,推出MATLAB6.0版本R12 (Win98/Win2000) 2001年,推出MATLAB6.1 (克服6.0不支持P4,Win me,汉字等)。 2002年,推出MATLAB6.5R13(速度更快、性能更优越等)。2004年,推出MATLAB7版本R14第1章 Matlab概述2、MATLAB 的主要特点MATLAB 的基本单位为矩阵.MATLAB 语言以解释方式工作.具有非常友好
5、的人机界面。具有强大的作图和数据可视化功能.具有极强的可扩展性。3、MATLAB 的基本组成MATLAB 主程序、Simulink 动态系统仿真和 MATLAB 工具箱( Toolbox)三大部分组成。主程序包括了 MATLAB 语言、工作环境、句柄图形、数学函数库和应用程序接口五部分.第1章 Matlab概述1.2、Matlab的工作环境1. MATLAB 的启动 桌面快捷方式启动 开始菜单方式启动2. MATLAB和退出 Matlab菜单命令/关闭按钮 在Matlab命令窗口输入exit或quit第1章 Matlab概述 MATLAB的桌面环境可以包含多个窗口,这些窗口分别为历史命令窗口(
6、Command History)、命令行窗口(Command Window)、当前目录浏览器(Current Directory Browser)、工作空间浏览器(Workspace Browser)、目录分类窗口(Launch Pad)、数组编辑器(Array Editor)、M文件编辑器/调试器(Editor/Debugger)、超文本帮助浏览器(Help Navigator/Browser),这些窗口都可以内嵌在MATLAB主窗体中,组成MATLAB的用户界面。其中当MATLAB安装完毕并首次运行时,展示在用户面前的界面为MATLAB运行时的缺省界面窗口,如图1-1所示。 第1章 Mat
7、lab概述图1-1 MATLAB默认的用户界面第1章 Matlab概述 MATLAB 6.5的缺省界面和MATLAB 6.1的缺省界面相比还是有一定变化的,主要就是在界面的左下角有一个名为“Start”的启动菜单,在这个菜单中可以执行MATLAB产品的各种工具,并且可以查阅MATLAB包含的各种资源,它的功能和MATLAB的目录分类窗口(Launch Pad)功能非常类似。在默认的缺省用户界面中,新版本的MATLAB中没有了目录分类窗口(Launch Pad),而是工作空间浏览器(Workspace Browser)。 MATLAB启动的界面可以具有多种默认的选择,用户可以通过MATLAB界面
8、中的“View”菜单下的“Desktop Layout”子菜单下的命令选择不同的MATLAB界面,这些命令分别为:第1章 Matlab概述Default:缺省的界面,如图1-1所示。包含历史命令窗口(Command History)、命令行窗口(Command Window),此外工作空间浏览器(Workspace Browser)和当前目录浏览器(Current Directory Browser)两个窗口层叠在一起。Command Windows Only:仅包含命令行窗口(Command Window),此时MATLAB界面的外观类似于旧版本的MATLAB。Simple:包含两个窗口命令
9、行窗口(Command Window)和历史命令窗口(Command History),两个窗口并列在界面中,如图1-2所示。 第1章 Matlab概述图1-2 选择Simple菜单命令的界面 第1章 Matlab概述Short History和Tall History:这两个菜单命令包含的窗口类型和数量同默认的界面完全一致,不过排放的顺序不同,如图1-3、1-4所示。图1-3 选择Short History菜单命令的界面第1章 Matlab概述图1-4 选择Tall History菜单命令的界面第1章 Matlab概述Five Panel:包含所有的MATLAB桌面窗口,在MATLAB界面中
10、各个窗口处于平铺状态,如图1-5所示图1-5 选择Five Panel菜单命令的界面第1章 Matlab概述在MATLAB用户界面的View菜单下还有一些菜单命令可以用来选择显示在图形界面中的窗口,用户可以根据自己的喜好选择配置用户界面。在本小结提及的各种用户交互的窗口将在后续的章节中详细讲述。一般情况下,建议用户选择“Command Windows Only”方式来运行MATLAB。在这种启动方式下,MATLAB的启动速度比较快,占用的资源略少。2. 通用窗口 MATLAB 工作界面中的常用窗口包括命令窗口历史命令窗口当前工作目录窗口工作空间浏览器窗口变量编辑窗口M文件编辑调试窗口所有窗口都
11、可以单独显示, 使用Undock 和Dock 可使窗口单独出来和返回到MATLAB工作界面中。1菜单和工具栏默认情况下的菜单和工具栏: 【File】菜单主要用于对文件的处理。【Edit】菜单主要用于复制、粘贴等操作,与一般Windows程序的类似,在此不作详细介绍。 【Debug】菜单用于调试程序。【Desktop】菜单用于设置主窗口中需要打开的窗口。【Window】菜单列出当前所有打开的窗口。【Help】菜单用于选择打开不同的帮助系统。 第1章 Matlab概述4. MATLAB工具栏 用 MATLAB 的 M 文件编辑器新建一个 M 文件; 用 MATLAB 编辑器打开一个文件; 将选中的
12、内容剪切到剪贴板; 将选中的内容复制到剪贴板; 将剪贴板中的内容粘贴到光标指定的位置; 撤消最近一次的操作; 打开 Simulink 浏览器; 打开 MATLAB 帮助窗口。当前工作路径1.2.1 命令窗口(Command Window)MATLAB提供给用户使用的管理功能的人机界面,在命令窗口中输入MATLAB的命令和数据后按回车键,立即执行运算并显示结果。说明:命令窗口中的“”为命令提示符,表示MATLAB处于准备状态。当在提示符后输入一段程序或一段运算式后【Enter】键,MATLAB会给出计算结果,并再次进入准备状态(所得结果将被保存在工作空间窗口中)。第1章 Matlab概述5.Co
13、mmand Windows运用入门1)Command Windows指令窗口简介在命令窗口内执行的MATLAB主要操作有:运行函数和输入变量;控制输入和输出;执行程序,包括M文件和外部程序。命令窗口中可直接运行MATLAB 函数,而这些函数往往又和MATLAB命令直接联系。MATLAB在命令窗口中的语句形式为:变量表达式;1.2.1 命令窗口(Command Window)MATLAB提供给用户使用的管理功能的人机界面,在命令窗口中输入MATLAB的命令和数据后按回车键,立即执行运算并显示结果。说明:命令窗口中的“”为命令提示符,表示MATLAB处于准备状态。当在提示符后输入一段程序或一段运算
14、式后【Enter】键,MATLAB会给出计算结果,并再次进入准备状态(所得结果将被保存在工作空间窗口中)。在命令窗口内执行的MATLAB主要操作有:运行函数和输入变量;控制输入和输出;执行程序,包括M文件和外部程序。命令窗口中可直接运行MATLAB 函数,而这些函数往往又和MATLAB命令直接联系。MATLAB在命令窗口中的语句形式为:变量表达式;运行函数和键入变量在命令窗口的提示符“”下 ,可以直接输入变量。例:计算A=256/41002128 A=256/4-100*2+128 %从键盘输入,并单击回车键 A = %屏幕显示的结果 -8 MATLAB语法规定,百分号“%”后面的语句为注释语
15、句。 例 在命令窗口中输入不同的命令和数值,并查看其显示方式。 a=0.5a = 0.5000 b=sinb =sin if a1 c=true%如果a (12+2*(7-4)/32(2)在上述表达式输入完成后,按【Enter】键,该指令被执行(3)在指令执行后,Matlab指令窗中将显示以下结果ans = 2第1章 Matlab概述例1.2简单矩阵 的输入步骤(1)在键盘中输入下列内容 A=1,2,3;4,5,6;7,8,9(2)按【Enter】键,该指令被执行(3)在指令执行后,Matlab指令窗中将显示以下结果A = 1 2 3 4 5 6 7 8 9第1章 Matlab概述当然我们也可
16、以采用分行输入的形式 A=1,2,3 4,5,6 7,8,9A = 1 2 3 4 5 6 7 8 9第1章 Matlab概述3)计算结果的图象显示例 1-3 绘制函数 y=2sin(1+x)的图像,并计算当 x=0.5 时的函数值。x=(1:0.1:10); %给出自变量 x 的定义域 y=2*sin(1+x); %写出函数形式plot(x,y) %绘出函数图形 y=2*sin(1+0.5) %求当 x=0.5 时的 y 值,其后不加分号,直接在窗口中给出结果 y =1.9950 %输出 y 的计算结果 第1章 Matlab概述例 1-4 绘制函数 y=3x3-10 x2+5x-8的图像fo
17、r i=1:100 x(i)=0.1*i; y(i)=3*x(i)3- 10*x(i)2+5*x(i)-8;endplot(x,y)第1章 Matlab概述5. MATLAB 通用命令1.4 MATLAB 7.1 的其他管理MATLAB文件格式MATLAB 7.1的常用文件有.m、.mat、.fig、.mdl、.mex、.p等类型 。设置搜索路径用户自己书写的函数有可能并没有保存在搜索路径下。要解决这个问题,只需把程序所在的目录扩展成MATLAB的搜索路径即可。 MATLAB文件格式程序文件程序文件即M文件(M-File),其文件的扩展名为.m。图形文件图形文件(Figure)的扩展名为.fi
18、g。模型文件模型文件(Model)扩展名为.mdl,可以在“File”菜单中创建Model时生成.mdl文件。数据文件数据文件即MAT文件,其文件的扩展名为.mat。MATLAB文件格式可执行文件可执行文件即MEX文件,其文件的扩展名为.mex。项目文件项目文件的扩展名为.prj。P码文件P码文件即伪代码文件,是M文件被调用后在内存中生成的内部伪代码。设置搜索路径在MATLAB内存中进行检查,检查“sin”和“x”是否为工作空间的变量或特殊变量;检查“sin”和“x”是否为MATLAB的内部函数;在当前目录上,检查是否有相应的“.m”或“.mex”文件存在; 在MATLAB搜索路径的所有其他目
19、录中,依次检查是否有相应的“.m”或 “.mex”的文件存在;如果都不是,则MATLAB发出错误信息。1. MATLAB的基本搜索过程设置搜索路径窗口(Set Path)打开设置搜索路径窗口的方法:在MATLAB界面选择菜单“File”“Set Path”;在命令窗口中运行“pathtool”或“editpath”命令。3. 设置搜索路径的常用命令path命令path(path, 新目录) addpath命令addpath 目录1 目录2 参数例 使用命令设置搜索路径addpath c:TEMP -begin path (path,c:TEMP) p=path附:在命令窗口中输入path或ge
20、npath可得到MATLAB的所有搜索路径,第1章 Matlab概述1.3 Matlab帮助系统1、Matlab联机帮助 #工具条中的 按钮; #help菜单栏中前2 项中的任何一项; #在命令窗口中执行 helpdesk或doc。2、Matlab的网上资源web菜单栏使用帮助浏览器帮助主题(Contents)、索引(Index) 、搜索(Search)和演示(Demos)四个面板来查找帮助信息:Contents面板为可展开的树形结构,向用户提供全方位系统帮助的向导图;Index面板是MATLAB提供的术语索引表,可以查找命令、函数和专用术语等。Search面板是通过关键词来查找全文中与之匹配
21、的章节条目,Index只在专用术语表中查找而Search的搜索是在整个HTML文件中进行的,因此其覆盖面更宽。Demos面板为MATLAB提供了Demo演示。第1章 Matlab概述3、Matlab常用的窗口帮助命令MATLAB的帮助系统1、帮助命令 帮助命令是查询函数语法的最基本的方法,查询信息直接显示在命令窗口。帮助命令有help、lookfor。help %在命令窗口直接输入help,显示主要的在线帮助主题。help 函数名 %显示关于某个具体函数的功能、调用格式、及相关函数。help 帮助主题 %列出指定主题下的函数。例如help elfun %列出所有基本函数。 MATLAB的帮助系
22、统(续)lookfor image %查找有关图像的函数和命令。 2、在线帮助浏览器 MATLAB6.x设计了全新的在线帮助浏览器,当在View菜单中选择了Help选项,或在Help菜单中选择了MATLAB Help选项时,都可以打开帮助浏览器。3、演示帮助 选择Help菜单中的Demos选项,可以打开演示窗口,观看要查询项的动画演示。使用帮助命令lookfor 关键字 (查找) lookfor命令是在所有的帮助条目中搜索关键字,常用来查找具有某种功能而不知道准确名字的命令。 如:lookfor sound 打开帮助窗口命令:helpwin:打开帮助窗口helpdesk:打开帮助桌面demo:
23、打开演示窗口第1章 Matlab概述demo 命令联机演示系统 可以通过以下方式打开联机演示系统。 选择MATLAB主窗口菜单的【Help】|Demos】选项; 在命令窗口输入demos; 直接在帮助页面上选择Demos页。第1章 Matlab概述helpwin 命令用于打开 MATLAB 的帮助文件窗第1章 Matlab概述lookfor 命令允许用户通过完整的或部分关键字来搜索要查找的内容who 和 whos 的作用是列出在 MATLAB 工作内存中驻留的变量名exist 命令用来查找或检查变量和函数的存在性四、MATLAB的运行方式1、命令行运行方式 演算纸式的科学计算语言 在MATLA
24、B的应用中,最基本、最简单的应用,就是在命令窗口中直接输入命令来实现计算或绘图功能。 MATLAB命令行的一般形式为:变量表达式或:表达式 (赋值语句) 使用MATLAB最简单的方式是将MATLAB的命令窗口看作计算器,通过输入数学算式直接计算。 12345 ans= 15 如果在输入的表达式后面跟上分号“;”,那么运行后就不会马上显示运算的结果,必须键入输出变量后才能显示运算结果。用分号关闭不必要的输出会使程序运行速度成倍甚至成百倍地提高。 12345; 则不会马上显示运算结果,要得到运算结果,必须 ans 则显示结果为 ans= 15如果在表达式后面跟上逗号“,”或什么都不跟,运行后会马上
25、显示该表达式的运算结果。如果一个表达式很长,可以用续行号“”将其延续到下一行。1+2+3+4+5+ %注意加号写在本行。 6+7+8+9+10 则输出结果 ans= 55 如果续行号前面是数字,直接使用续行号会出现错误,有三种解决办法,一是设法使续行号前面是一个运算符号,二是先空一格再加续行号,三是再加一个点。在一行中也可以写几个语句,它们之间用逗号“,”或分号“;”隔开。 A=1,2,3.3,sin(4),X=1966/310+1 则输出结果 A 1.0000 2.0000 3.3000, -0.7568 X= 7.3419。2、m文件运行方式 所谓m文件,就是用MATLAB语言编写的、可以
26、在MATLAB中运行的程序。它是以普通文本格式存放的,故可以用任何文本编辑软件进行编辑。MATLAB提供的m文件编辑器就是程序编辑器。在File菜单中选择NEW,再选择M-file,或点击新建图标,就可以调出m文件编辑器,用户可以用此编辑器编写m文件。m文件有两种形式,一种称为命令文件(Script File),另一种称为函数文件(Function File),两种文件的扩展名都是m。(1)命令文件 如果要输入较多的命令,或者要经常对某些命令进行重复的输入,则可以将这些命令按执行顺序存放在一个m文件中,以后只要在MATLAB的命令窗口中输入该文件的文件名,系统就会调入该文件并执行其中的全部命令
27、。这种形式就是MATLAB的命令文件。命令文件中的语句可以访问MATLAB工作空间的所有变量;而在命令文件执行过程中创建的变量也会一直保留在工作空间中,其他命令或m文件都可以访问这些变量。命令文件相当于DOS批处理文件。求满足1+2+3+n100的最大正整数n的MATLAB程序为:sum=0;n=0; %赋初始值while sum=100,故应 对sum减nn=n-1; %当循环结束时有sum=100,故 应对n减1n,sum %显示最大正整数n以及和sum将上述程序存入文件fl.m,然后在命令窗口键入fl 显示结果为n= 13sum= 91指出: 程序中由符号“%”开始的文字都是注释文字,用
28、来对程序或程序行行进行注释说明,符号“%”称为注释符,MATLAB在执行时将忽略“%”后的内容。(2)函数文件函数文件是另一类m文件,可以像库函数一样方便地被调用,MATLAB提供的许多工具箱,是由函数文件组成的。对于某一类特殊问题,用户可以建立系统的函数文件,形成专用工具箱。函数文件的第一行有特殊的要求,它必须遵循如下的形式: function=()其他各行都是程序运行语句,没有特别要求。函数文件的文件名必须是.m。实现符号函数运算功能的函数m文件为:function y=sgn(x) %这是一个定义符号函数 y=sgn(x)的函数文件。if xx=4/3*pi; y=3*sgn(sin(x
29、) 显示结果为:y= -3五、MATLAB的常用命令 MATLAB可以通过菜单对工作着的窗口进行操作,也可以通过键盘在命令窗口输入命令进行操作,下面给出几个常用的通用命令。quit 关闭MATLABexit 关闭MATLABclc 清除MATLAB命令窗口中的所有显示内容clear 清除工作空间中保存的所有变量 其他命令可以在学习应用中逐步熟悉。第1章 Matlab概述上机练习(1)( 1)以两种方式打开 MATLAB 工作窗口,进入MATLAB 6.5 的工作环境,并尝试用不同的方式退出。 ( 2)尝试、熟悉 MATLAB 6.5 的各栏菜单以及各个工具栏的功能。 ( 3)重新启动 MATL
30、AB 6.5,进入 MATLAB 工作窗口,用 who 命令查看当前工作空间内有无变量及其值。 ( 4)绘制函数y=cos(5x+2)/sin(3x+1) 的图像,并求解当 x=2 时的函数值。 ( 5)此时再次用 who 命令查看工作空间内的变量名及其值,与( 3)比较,同时用whos 命令查看变量,比较与 who 命令的不同。 ( 6)熟练掌握 MATLAB 的通用命令。 ( 7)练习并熟练掌握 MATLAB 的帮助命令,学会利用 MATLAB的帮助信息。(8)用 lookfor 命令查找函数 cos 的信息,并与 help 命令查找的结果相比较,注意采用两种命令之间的差别。第2章 Mat
31、lab语言程序设计基本要求:(1) 了解Matlab的各种数据类型;(2) 掌握Matlab的运算符与操作符的含义和用法 ;(3) 掌握Matlab基本表达式并了解其常用函数分类;(4) 熟练掌握 Matlab 的程序结构(顺序结构、循环结构和分支结构)与流程控制语句 ;(5) 了解并初步掌握 Matlab 的数据文件的读写; (6) 学会 Matlab 的M文件的编写方法,包括命令文件和函数文件。了解M件的调试命令和调试方法。第2章 Matlab语言程序设计1、 Matlab数据类型 MATLAB的早期版本只有非常简单的二维数组和字符类型的数据,目前的MATLAB版本中不仅有多达十几种的基本
32、数据类型,在不同的专业工具箱中还有特殊的数据类型,并且MATLAB还支持面向对象的编程技术,支持用户自定义的数据类型。 MATLAB支持的基本数据类型见图2-1。第2章 Matlab语言程序设计图2-1 MATLAB的数据类型 第2章 Matlab语言程序设计获取MATLAB的数据类型列表可以在MATLAB命令行窗口中键入help datatypes命令。 在图2-1中所示的各种数据类型都可以用于创建向量、矩阵或者多维数组。用户自定义的数据类型也是图示的各种数据类型的组合。在不同的MATLAB工具箱中具有自定义的数据类型,例如控制系统工具箱中定义的LTI对象,在滤波器设计工具箱中定义的滤波器对
33、象,在符号数学工具箱中定义的符号类型数据等。这些工具箱中包含的特殊数据对象也都使用这些基本的数据类型组合构成。第2章 Matlab语言程序设计 需要指出一点,MATLAB的基本数据类型是双精度数据类型和字符类型。MATLAB的M语言和其他高级编程语言不同的是,MATLAB没有具体的变量或对象声明和定义过程,任何数据类型的变量或对象都可以利用面向对象编程技术中构造函数的方法或者数据类型转换的方法来创建其他数据类型对象和变量。MATLAB和Java语言、C+语言类似,所有数据类型就是相应的类,具有一定的面向对象的特点。MATLAB的不同数据类型的变量或对象占用的内存空间不尽相同,不同的数据类型的变
34、量或对象也具有不同的操作函数。在本章中,将详细讲述MATLAB的基本数值类型、逻辑类型、字符串、元胞数组和结构的使用方法,其中,元胞数组是MATLAB中常用的一种独有的数据类型。2.1 变量 1、标识符:表示变量名,常量名,函数名和文件名的字符串 (1)由字母、数字、下划线等符号组成,第一个字母必须是英文字母 。(2)变量和常量最长不要超过19个字符,多余截取。 (3)函数和文件名通常不超过8个字符。 (4)变量名大小写敏感。2.1 变量 (5)MATLAB中的特殊变量名,应避免使用。 例如: 变量名意义ans用于存储计算结果的默认变量pi圆周率inf(Inf)无穷大,例如1/0 eps计算机
35、的最小数,和1相加产生比1大的数,在pc机上为252。 NaN(nan)不定量,如0/0 i或j虚数单位,i=j=sqrt(-1) 2.1 变量 2、变量类型 :(1)数值:内部只有一种类型为双精度(8个字节,64位), 实数为1个双精度数,复数为两个双精度数。 但输出显示格式有8种。 可用format命令来改变显示格式。 例如: format short 显示5位数 (pi: 3.1416) format long 显示15位数(pi: 3.14159265358979) format bank 显示货币格式(pi: 3.14)2.1 变量 数字显示的8种格式Matlab命令显示形式说 明f
36、ormat long3.14159265358979316位十进制format short e3.1416e+0005位十进制数加指数format long e3.141592653589793e+00016位十进制数加指数format hex400921fb54442d1816位十六进制format bank3.14两位小数format +正、负或零format rat355/113分数近似format short(默认)3.14159二位整数,四位小数指出:自定义变量名一般不应和系统变量同名。在MATLAB中输入的内容直接决定变量的类型。使用who和whos命令可以查看变量。使用clear
37、命令可以删除所有定义过的变量。如果只是删除其中某些变量,应在clear后面指定要删除的变量名。例如 clear a z有了变量,就可以组成表达式,也就可以对变量进行赋值。MATLAB的赋值语句有两种形式。 变量名表达式 表达式 在第一种情况下,MATLAB将右边的表达式的值赋值给左边的变量,在第二种情况,MATLAB将表达式的值赋值给系统变量ans。所谓表达式,就是用运算符号把特殊字符、函数名、变量名等有关运算量连接起来的式子,其结果是一个矩阵。2.1 变量 2、变量类型 :(2)字符(串):用单引号表示。 如:a=abc 实际上是一个单个字符的ASCII码组成的行向量。2.1 变量 3、矩阵
38、 MATLAB中的变量或常量都代表一个矩阵, 所有的变量运算其实都是矩阵运算。 单个值实际上是1*1阶矩阵。 矩阵元素可以是数值(实数或复数)或字符串。 一个由矩阵表示的变量可以是一个数、一组数、一个文件(如语音)、一幅图象等。 2.1 变量 3、矩阵 矩阵(Matrix)与数组(Array)的关系 : 矩阵运算有着严格理论 数组运算一般指元素运算4、矩阵的创建矩阵是线性代数的基本运算单元。通常矩阵是指含有m行n列数值的矩形结构。矩阵中的元素可以是实数也可以是复数,由此可以将矩阵划分为实矩阵和复矩阵。MATLAB支持线性代数所定义的全部矩阵运算。在MATLAB中创建矩阵应遵循以下原则:矩阵的元
39、素必须在方括号“ ”中。矩阵的同行元素之间用空格或逗号“,”分隔。矩阵的行与行之间用分号“;”或回车符分隔。矩阵的尺寸不必预先定义。矩阵元素可以是数值、变量、表达式或函数。如果矩阵元素是表达式,系统将自动计算出结果。2.1 变量 4、变量的查看: who/whos5、变量的保存和恢复: save 文件名 (缺省后缀为.mat)例如:save myvarload 文件名 例如:load myvar2.2 矩阵的赋值 1、矩阵的直接赋值 (1)基本赋值 1)使用 2)同一行元素用空格或,隔开 3)不同行用;隔开 例如:a=1 2 3;4 5 6 (2)复数的赋值: 例如:z=1+2i或1+2j z
40、=1+2i 3+4i z=1 3+2 4*i 直接输入法在命令窗口按规则输入方式创建矩阵 例1.在命令窗口创建简单的数值矩阵。 A=1 3 2;3 1 0;2 1 5 回车后在命令窗口显示如下结果 A = 1 3 2 3 1 0 2 1 5 例2.在命令窗口创建带运算表达式的矩阵,不显示结果。 y=sin(pi/3),cos(pi/6);log(20),exp(2); 输入“y”回车,在命令窗口显示出来。 y 显示出的结果为 y = 0.8660 0.8660 2.9957 7.3891指出:在矩阵较大时,用分行输入的方式(用回车代替分号区分不同行)比较接近于线性代数中的矩阵,更直观一些。任何
41、矩阵元素内部不能有空格,否则会被认定是两个元素。 2、通过数据文件创建矩阵导入其他程序创建的数据 例3.用记事本输入一组数据 1 2 3 4 2 3 4 5 4 3 4 5 5 7 6 1 保存为fort.txt,用load命令读入, load fort.txt 输入fort就可以在命令窗口显示创建的矩阵。 fort 显示结果为 fort = 1 2 3 4 2 3 4 5 4 3 4 5 5 7 6 1 指出:通过load命令导入数据是形成矩阵的重要方法,解决了在工作现场没有MATLAB系统和其他数据管理系统的问题,可以只用基本的文字处理工具完成。MATLAB对文本形式的数据文件的扩展名并不
42、计较,将上述数据文件换名保存为fort.1,仍然可以如上导入、应用。文件名可以定义为m1.txt或m1.1。但是,如果将文件命名为1m.txt,则显示出错信息:“Error: Missing operator(算子), comma(逗号), or semicolon(分号).”如果文件名命名为3.txt、1.txt、3.1等,则显示的是主文件名所用的数字。数据文件保存为word或wps等的文件格式同样可以引用。如果数据文件中有字母,则不能引用,显示出错信息,即使该字母在前面的指令中已经赋值也不可。如果数据文件中有算式,则不能完整显示,算式元素将仅显示第一个运算符(或关系符)前的数字。导入其他数
43、据,如图像数据、Excel数据时,可以使用数据导入向导Import Wizard。3、通过m文件创建矩阵将矩阵建立为m文件 先将矩阵按创建原则写入一个m文件中,在MATLAB命令窗口或程序中直接运行该m文件(输入该m文件名),即可将矩阵调入工作空间。4、通过函数创建矩阵函数功能eye(n)产生n阶单位矩阵ones(m,n)产生mn矩阵,元素都是“1”zeros(m,n)产生mn矩阵,元素都是“0”(零矩阵)产生空矩阵指出:当某一项操作无结果时,MATLAB将返回一个空矩阵,空矩阵的大小为0,但它确实存在于工作空间,可以通过变量名访问。输入后的矩阵将保存在MATLAB工作空间中,并可以随时被访问
44、调用,如果用户不用“clear”命令清除它,或给它重新赋值,该矩阵将一直保存在工作空间直到MATLAB关闭为止。如果矩阵函数中只有一个参数,则为方阵。四种创建矩阵的方法各有优点:直接输入法方便简捷;通过数据文件创建有利于调用其他软件产生的数据;通过m文件创建是用于创建较大尺寸的矩阵并便于修改;通过函数创建可以由MATLAB内部函数创建一些特殊矩阵。5、其他构造矩阵的方法冒号法1冒号法构造向量冒号表达式的一般格式为:向量名初值:步长:终值。例4.在窗口输入 x=0:0.5:2回车后显示x = 0 0.5000 1.0000 1.5000 2.0000。例5. 在命令窗口输入 x=2:-0.5:0
45、回车后显示x = 2.0000 1.5000 1.0000 0.5000 0指出:步长可以省略,省略步长,则步长为1。步长可以为负,此时初值大于终值。向量的元素比较多而又有增减规律时,这种方法非常便利。冒号法表示向量时,向量的全体成员是从初值开始,以步长为增量,直到不超过终值的所有元素构成的序列。冒号法的应用可以避免使用循环,提高程序运行速度。矩阵的创建(续)2冒号法构造矩阵一般格式为:A(:,j):表示矩阵A的第j列;A(i,:):表示矩阵A的第i行。例6.建立矩阵 。解: A(1,:)=1:5 %设置矩阵的第1行A = 1 2 3 4 52.2 矩阵的赋值 注意: 赋值结尾为“;” 则不显
46、示结果。 一行不够时,可用“”换行。 矩阵的阶数也可通过下列函数获得: 对于一维,m=length(a) 为矩阵a的长度。 例如: a=1 2 3 length(a)为32.2 矩阵的赋值 注意: 矩阵的阶数也可通过下列函数获得: 对于二维,m,n=size(a), m为行数,n为列数 例如: a=1 2 3; 4 5 6 size(a)为2 32.2 矩阵的赋值 2、矩阵元素的赋值 (1)元素用(m,n)的形式表示第m行n列的元素值,可直接引用和赋值。 例如,a(2,1)=4, 若将其改为9, 则可用a(2,1)=9。注意:如果元素下标超出原矩阵的维数,矩阵将自动扩大,多出的元素自动为0 。
47、 2.2 矩阵的赋值 2、矩阵元素的赋值 (2) 给全行或全列赋值 : 用“:”代替行或列。 如:a(4 , :)=11 12 13 14 b(: , 5)=5; 8; 10; 12 注意:行数或列数必须与原矩阵相同。 2.2 矩阵的赋值 3、矩阵的变换 (1)抽取:由原矩阵中的部分元素 构成新矩阵。 如:b=a(2,4,1,3) 表示第2,4行与第1、3列交叉元素组成新矩阵。 2.2 矩阵的赋值 3、矩阵的变换 (2)抽去:使用空矩阵(无元素),将矩阵整行/列删除。 如:a(2,4,:)= 将2、4行删除 a(:,2)= 将第2列删除2.2 矩阵的赋值 3、矩阵的变换 (3) 组合:由多个矩
48、阵组成一个新矩阵,但行列应正好。 如:a=1 2 3;4 5 6; b=7 8 9;10 11 12; c=a b; d=a;b; (4)转置:b=a (行变列) 例如:a=1 2 3;4 5 6 ,则 a=1 4;2 5;3 62.2 矩阵的赋值 (5) 排列:b=a(:) 将所有列排成一列。 例如:a=1 2 3;4 5 6; a(:)=1;4;2;5;3;6; 若先转置再排列,即实现按行排列。 (6) 变换函数: fliplr(a) (矩阵左右翻转) (flip翻left right) flipud(a) (矩阵上下翻转) 3、矩阵的变换 2.2 矩阵的赋值 4、间隔赋值(适合批量数据)
49、 (1) 变量=(first:increment:last)形式 如:t=(0:0.1:1) 则 t=0,0.1,0.2,1 (2) 线性间隔函数 linspace(first,last,num) 从first开始到last结束共num个元素, 间隔为(last-first)/(num-1) 如:t= linspace (0,1,11),t=0,0.1,1 2.2 矩阵的赋值 4、间隔赋值(适合批量数据) (3)对数间隔函数 logspace(first,last,num) 从10first开始到10last结束共num个元素 如:t= logspace (0,1,11),t=100,100.
50、1,101 2.2 矩阵的赋值 5、基本矩阵 (1)空阵: (当操作无结果时,返回空阵) (2)全0矩阵:zeros(m,n) 例如:zeros(2,3)=0 0 0;0 0 0(3)全1矩阵:ones(m,n) (4)单位矩阵:eye(n) (对角线为1的方阵) (5)随机矩阵:rand(m,n) 2.2 矩阵的赋值 6、文件赋值 (1) 波形文件(.wav):即音频文件 读波形文件 :a=wavread(文件名), 如:a=wavread(morse.wav) 写波形文件:wavwrite(a, 文件名) 波形文件播放:用wavplay或sound, 如:wavplay(a); 2.3 矩
51、阵的初等运算 1、加减法: 矩阵的加减就是对应元素的加减 。如:a=1 2 3;b=4 5 6,则a+b=5 7 8 , 如果矩阵与一常数(标量)相加减,则把该常数看成是同阶的矩阵。例如:a+5=6 7 8 2.3 矩阵的初等运算 2、乘法 (1)矩阵相乘:mp阶矩阵A与pn阶矩阵B的乘积是一个m*n阶矩阵。例如: a=1 2 3;b=4 5 6 则:a*b=20. (2)矩阵与常数相乘等于每个元素乘以该常数,例:2*a。 2.3 矩阵的初等运算 2、乘法 (3)矩阵元素相乘(数组相乘):使用“.*” 相乘的两个矩阵阶数应相同 。例如:a=1 2 3;b=4 5 6 则:a.*b=4 10 1
52、8 2.3 矩阵的初等运算 3、除法 (1)矩阵的除法 右除,“/” :A/B=A*B-1 (B的逆矩阵inv(B), B必须是方阵,A与B列应相等。左除,“” :AB=A-1*B , A必须是方阵,A与B行应相等。 (2)矩阵除以常数,等于每个元素除以常数,使用普通除法/ 。2.3 矩阵的初等运算 3、除法 (3)矩阵元素的除法(数组相除):“./” :A./B为A各元素除以B中各元素。“.” :A.B=B./A 2.3 矩阵的初等运算 4、乘方 (1)矩阵乘方 :(乘方是乘法的扩充,为保证合法性,要求矩阵为方阵) A标量 :例 A2,A0.2 (2)元素的乘方: a) A.标量 : 例 A
53、=1 2 ,A.2=1 4 2.3 矩阵的初等运算 4、乘方 b) 标量.A :例 3.A =3 9 c) A.B :A、B同阶 例 A=1 2 ,B=3 4 ,则A.B=1 162. 4 矩阵的基本运算函数 1、矩阵的运算函数 (见附录A) 指数函数 :expm()%变量必须是方阵 对数函数 :logm() %变量必须是方阵 开方函数 :sqrtm()%变量必须是方阵 三角函数(25个):例如:t=1 2 3,y=sin(t) 指数/对数函数(7个): 例如:exp() 复数函数(8个):例如:abs() 取模 取整函数(7个):例:round() 四舍五入 2. 4 矩阵的基本运算函数 2
54、、矩阵元素的运算 (基本函数库elfun) 1、关系运算: 共6种 : (大于) (小于) = (大于等于)= (小于等于) = = (等于) = (不等于)比较是在元素间进行的。 矩阵必须同阶 比较结果仍为矩阵,且元素值为0(假) 或1(真) 例如:a=1 2,b=2 1, 则ab 结果为0 1,a=b 结果为0 0 2. 5 矩阵的逻辑运算 2、逻辑运算 : 共有四种运算符号: & (与)、|(或)、 (非)、xor(异或) 矩阵元素值必须为逻辑值(0、1) 运算是在元素间进行的。比较结果仍为矩阵 例如:a=1 0,b=0 1,则:a&b =0 0 xor(a,b) =1 12. 5 矩阵
55、的逻辑运算 3、逻辑函数: (运算符库ops ) 例如: exist(a) -检查变量是否有定义, 返回1表示有0表示无 all(a)-检查矩阵中元素是否全为非0, 1是0否 3 MATLAB的符号运算 数值运算中的变量需要事先赋值,才能出现在表达式中参与运算。但人们经常需要对含有字符的矩阵和函数进行处理和运算,如求函数的微分、积分等等,这就需要进行符号运算。 MATLAB的符号运算利用符号数学工具箱进行,符号工具箱的功能主要包括符号表达式的创建、符号矩阵的运算、符号表达式的化简和替换、符号微积分、符号代数方程、符号微分方程、符号函数绘图等等 。一、符号对象的创建1、字符串变量的创建 字符串是
56、一种特殊的符号对象,在数据处理、造表和函数求值中,字符串具有重要的应用。 用单引号界定的字符序列称为字符串。例如 s=hello回车后,显示s =hello2、函数数学函数函数名含义函数名含义abs(x)x的绝对值atant(x)x的反正切sqrt(x)x的平方根cot(x)x的余切exp(x)e的x次方acot(x)x的反余切sin(x)x的正弦log(x)x的自然对数cos(x)x的余弦log10(x)x的常用对数asin(x)x的反正弦sinh(x)双曲正弦acos(x)x的反余弦cosh(x)双曲余弦tan(x)x的正切机器函数 pause 程序将暂时停在该函数所在位置,击任意键程序继
57、续执行 echo on 在命令窗口显示正在执行的程序指令 cputime 给出MATLAB所耗用的总机器时间 clock 给出日期及当前时间指出 在表达式中,函数一定要出现在等式的右边。每个函数对其自变量的个数和格式都有一定要求,如三角函数的单位是“弧度”而不是“度”。函数允许嵌套,如sqrt(sin(10)。系统函数的函数名小写。注意函数名也是区分大小写的。Matlab 永久变量ans最近的答案infInfinity(无穷大)eps浮点数相对精度NaNNot-a-Number(非数)realmax最大浮点实数flops浮点运算次数realmin最小浮点实数computer计算机类型pi3.1
58、4159235358579inputname输入变量名i,j虚数单位size多维矩阵的各维长度length一维矩阵的长度说明: eps、realmax和realmin三个常量具体的数值与运行MATLAB的计算机相关,不同的计算机系统可能具有不同的数值,例如,在笔者的计算机上,这三个数值分别为eps=2.220410-16, realmax=1.797710308,realmin=2.225110-308。 和其他的高级编程语言所定义的常量不同,MATLAB的常量数值是可以修改的。例如,在MATLAB命令行窗口中可以键入如下的指令:pi=100,这样pi这个常量的数值就变成了100。但是,如果用
59、clear指令清除变量后,pi将变成原有的常量数 Inf也可以写作inf,它为IEEE定义的算术数据无穷大数值,在MATLAB中进行诸如1.0/0.0或者exp(1000)的操作时都会得到这个数值。如果将inf应用于函数,则计算结果可能为inf或者NaN。 NaN也可以写作nan,它为IEEE规定的某种运算得到的结果,例如0/0的运算得到的结果就是NaN。NaN参与运算的结果也为NaN(关系运算除外)。 说明: MATLAB中所有的数据默认类型均为双精度类型,包括像NaN和Inf在内的上述若干常数。 对NaN和Inf进行数据转化时要注意,Inf将获取相应数据类型的最大值,而NaN往往返回相应整
60、数数据类型的数值0,浮点数类型则仍然为NaN。 在运算中使用NaN可以避免因为执行了0/0这类能够产生错误的应用程序中断,可以辅助调试应用程序。 c) 字符串 所有字符串都用单引号括起来。 s=matlab 字符中中的每个字符(包括空格)都是字符串变量(矩阵或向量)中的一个元素。字符串中的字符以 ASCII 码形式储存并区分大小 ,用函数abs可以看到字符的ASCII码。在Matlab中,字符串和字符矩阵基本上是等价的。 s=matlab 等价于 s=matlab 常用的字符串操作函数表 字符串举例: A= China 中国 ;输出带引号的汉字 B=我是好学生 c=I am fine. s3=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 三基知识培训考核制度
- 艺考培训学校教学制度
- 课外培训学校会计制度
- 游泳教练员定期培训制度
- 二次供水知识培训制度
- 红色培训教育管理制度
- 培训学校教学质量制度
- 舞蹈培训公司财务制度
- 农民夜校教育培训致制度
- 肿瘤上报培训工作制度
- 英语绘本Go AwayMrWolf狼先生快走开机智的小猪
- 东西湖区2024-2025学年上学期期末八年级英语试卷(含标答)
- 村支书考试试题及答案
- 医疗综合楼手术室、放射科、检验科二次深化设计装饰工程投标方案投标文件(技术方案)
- 大连海事大学3300航海英语题库词结归纳
- 湖北省十堰市城区2024-2025学年九年级上学期期末质量检测道德与法治试题 (含答案)
- 2025年中国船舶集团有限公司招聘笔试参考题库含答案解析
- 办公楼物业服务的品质提升策略
- 光伏分布式项目日报模板
- -腹腔镜下肝部分切除术的护理查房
- 养殖场土地租赁合同
评论
0/150
提交评论