MATLAB基础教程

上传人:可**** 文档编号:72584460 上传时间:2022-04-09 格式:PPTX 页数:202 大小:2.81MB
收藏 版权申诉 举报 下载
MATLAB基础教程_第1页
第1页 / 共202页
MATLAB基础教程_第2页
第2页 / 共202页
MATLAB基础教程_第3页
第3页 / 共202页
资源描述:

《MATLAB基础教程》由会员分享,可在线阅读,更多相关《MATLAB基础教程(202页珍藏版)》请在装配图网上搜索。

1、1会计学MATLAB基础教程基础教程MATLAB概述本章要点 MATLAB语言发展历程和主要特点MATLAB的软件平台介绍本章知识点 MATLAB软件平台和MATLAB语言,MATLAB 软件环境以及设置方法,MATLAB搜索路径以及设置,MATLAB安装和激活方法。MATLAB基础教程1页MATLAB概述 MATLAB,意为“矩阵实验室”,取自矩阵(Matrix)和实验室(Laboratory)两个英文单词的前三个字母。MATLAB是一种以矩阵作为基本数据单元的程序设计语言,具有交互式的开发环境,它提供了数值计算、符号计算和图形处理能力,是进行科学研究、数值分析和工程计算的得力工具。 左图展

2、示了MATLAB的发展历程。MATLAB已经发展成为一种具有广泛应用前景的高级编程语言。20世纪90年代以来,美国和欧洲的各个大学已将MATLAB列入研究生和本科生的教学计划,MATLAB已经成为应用代数、自动控制理论、数理统计、数字信号处理、时间序列分析、动态系统仿真等课程的教学工具,成为学生必须掌握的基本软件之一。在国内,MATLAB语言正逐步成为理工科大学学生的重要选修课程。同时,MATLAB还是机械、控制、经济、金融等领域的工作人员研究与开发的首选工具之一。MATLAB基础教程2页MATLAB概述 MATLAB在学术界和工程界备受推崇,其主要特点以及优势主要有如下几个方面: 1、编程环

3、境简单友好 2、编程语言简单易学 3、科学计算和数据处理能力强大 4、图形处理功能出色 5、丰富的工具箱和实用的程序接口 MATLAB由MATLAB开发环境、MATLAB数学函数库、MATLAB语言、MATLAB图形处理系统和MATLAB应用程序接口(API)五部分构成。 1、MATLAB开发环境 2、MATLAB数学函数库 3、MATLAB语言 4、MATLAB图形处理系统 5、MATLAB应用程序接口(API)MATLAB基础教程3页MATLAB概述 MATLAB的工具箱,用于解决不同领域的专业问题,这些工具箱通常以M文件和高级MATLAB语言的集合形式出现。MATLAB允许用户修改函数的

4、源代码或者增加新的函数来适应自己的应用。用户可以方便地定制针对某个问题的解决方案。MATLAB基础教程4页MATLAB概述 MATLAB 2011a于2011年4月正式发布,新版本涵盖:MATLAB 7.12、Simulink 8、新产品Simulink Design Verifier、Link for Analog Devices Visual DSP以及83个产品模块的更新升级及Bug修订。 1、MATLAB的安装和激活的安装和激活 MATLAB R2011a(MATLAB7.12)的安装平台如下: Windows XP Windows 7 (32位/64位) Linux Sun Sola

5、ris HP UX Mac OSMATLAB基础教程5页MATLAB概述 1、MATLAB的安装和激活的安装和激活MATLAB基础教程6页MATLAB概述 1、MATLAB的安装和激活的安装和激活MATLAB基础教程7页MATLAB概述 1、MATLAB的安装和激活的安装和激活MATLAB基础教程8页MATLAB概述 2、MATLAB的软件环境的软件环境 MATLAB的启动和退出的启动和退出 进入windows操作系统后,选择“开始”“程序”“MATLAB R2011a”,或者在桌面上双击MATLAB的快捷方式图标“ ”,便可进入左图所示的MATLAB主窗口。在启动MATLAB后,MATLAB

6、主窗口中的命令窗口“Command Window”中将显示提示符“”,该提示符表示MATLAB环境已经准备好等待用户输入命令了,此时,用户就可以在提示符“”后键入命令,按下回车键之后,MATLAB就会解释执行用户所输入的命令,并在命令之后给出计算结果。(如果在输入命令以后以分号结束,按回车键后则不会显示结果。) 退出MATLAB系统的方式有三种:u 在菜单项“文件(File)”中,选择“Exit MATLAB”。u 在命令窗口中键入命令“Quit”。u 用鼠标单击窗口右上角的关闭图标。MATLAB基础教程9页MATLAB概述 2、MATLAB的软件环境的软件环境 MATLAB的主窗口的主窗口

7、MATLAB的主窗口中包含了标题栏、主菜单、工具栏、命令窗口、历史命令窗口、当前文件夹窗口、工作空间窗口等主要的窗口。另外,MATLAB还提供了强大的文件管理和在线帮助功能。 标题栏标题栏 用户在标题栏中看到MATLAB的软件名以及版本信息 主菜单主菜单 主菜单中包含了MATLAB软件提供给用户的所有功能 工具栏工具栏 工具栏是MATLAB常用功能的快捷接口 命令窗口命令窗口 MATLAB的命令通过命令窗口执行,计算结果显示在命令窗口中 历史命令窗口历史命令窗口 保存命令的历史记录,用户可以方便快捷的重新执行命令 当前文件夹窗口当前文件夹窗口 设置了当前MATLAB环境的工作文件夹,用户可以自

8、定义 工作空间窗口工作空间窗口 工作空间中维护了当前MATLAB环境中的所有变量 文件管理文件管理 文件管理命令对MATLAB文件进行管理等操作 在线帮助在线帮助 MATLAB提供了强大的在线帮助,给用户提供实用的参考MATLAB基础教程10页MATLAB概述 3、MATLAB主菜单及功能主菜单及功能 (1)File菜单项 单击File主菜单项或同时按下“Alt+F”组合键,弹出如图1-16所示的File下拉菜单。下面是File菜单项各子菜单的简单介绍。MATLAB基础教程11页MATLAB概述 3、MATLAB主菜单及功能主菜单及功能 (2)Edit菜单项 单击Edit主菜单项或者同时按下“

9、Alt+E”组合键,弹出如图1-17所示的Edit下拉菜单。MATLAB基础教程12页MATLAB概述 3、MATLAB主菜单及功能主菜单及功能 (3)Debug菜单项 单击Debug主菜单项或者同时按下“Alt+B”组合键,弹出如图1-18所示的Debug下拉菜单。MATLAB基础教程13页MATLAB概述 3、MATLAB主菜单及功能主菜单及功能 (3)Debug菜单项 单击Debug主菜单项或者同时按下“Alt+B”组合键,弹出如图1-18所示的Debug下拉菜单。 (4)Parallel菜单项 单击Parallel主菜单项或者同时按下“Alt+P”组合键,弹出如图1-19所示的Para

10、llel下拉菜单。MATLAB基础教程14页MATLAB概述 3、MATLAB主菜单及功能主菜单及功能 (5)Desktop菜单项 单击Desktop主菜单项或者同时按下“Alt+D”组合键,弹出如图1-20所示的Desktop下拉菜单。MATLAB基础教程15页MATLAB概述 3、MATLAB主菜单及功能主菜单及功能 (6)Window菜单项 单击Window主菜单项或者同时按下“Alt+W”组合键,弹出如图1-21所示的Window下拉菜单。MATLAB基础教程16页MATLAB概述 3、MATLAB主菜单及功能主菜单及功能 (7)Help菜单项 单击Help主菜单项或者同时按下“Alt

11、+H”组合键,弹出如图1-22所示的Help下拉菜单。MATLAB基础教程17页MATLAB概述 4、 MATLAB命令窗口命令窗口 MATLAB命令窗口左图所示,用于MATLAB命令的输入,具有两个功能: 用户通过该窗口输入命令和数据。用户通过该窗口输入命令和数据。 用户通过该窗口看到命令执行的结果。用户通过该窗口看到命令执行的结果。在命令窗口中执行的MATLAB主要操作有: 运行函数和输入变量运行函数和输入变量 控制输入和输出控制输入和输出 执行程序,包括执行程序,包括M文件和外部程序文件和外部程序 保存日志保存日志 打开或关闭其他应用窗口以及各应用窗打开或关闭其他应用窗口以及各应用窗口的

12、参数选择口的参数选择MATLAB基础教程18页MATLAB概述 5、 MATLAB历史命令窗口历史命令窗口 命令历史窗口记录用户在命令窗口中输入过的所有命令。用户可以双击任何一个命令以重复执行该命令一次。用户选中该窗口中的任何一个命令后,单击鼠标右键,在弹出的菜单中,可以执行如图下常用项:MATLAB基础教程19页MATLAB概述 6、 MATLAB工作空间窗口工作空间窗口 MATLAB的工作空间窗口也称为内存空间浏览器,它保存了命令窗口所使用过的全部变量,可以通过工作空间窗口对内存变量进行操作。在工作空间窗口 ,单击窗口中的内存变量,可以对其进行复制、删除等操作。内存空间中的变量在执行cle

13、ar命令后将被清除。 当MATLAB启动后,系统会自动建立一个工作空间,只包含系统所提供的一些特殊变量,如pi,eps,nan,i等,以后会逐渐增加一些用户自定义的变量,如果不运行清除命令来删除变量,这些变量会一直存在下去,直到用户关闭MATLAB系统,释放工作空间后变量才会消失。MATLAB基础教程20页MATLAB概述 7、 MATLAB的当前文件夹窗口的当前文件夹窗口 MATLAB文件的打开与保存等操作,默认地址位于MATLAB默认的当前文件夹路径下。MATLAB的早期版本中也称该文件夹为当前目录。(Current Directory)MATLAB默认的当前文件夹路径为“C:My Doc

14、umentsMATLAB ”(c为MATLAB的安装盘符)。默认的当前文件夹窗口MATLAB基础教程21页MATLAB概述 8、 MATLAB的搜索路径的搜索路径 MATLAB的所有文件都放在目录里。MATALB把这些目录按照优先级设计为搜索路径上的节点。MATLAB在工作时,沿着搜索路径从各个目录上寻找所需要的变量、文件、函数和数据。 9、MATLAB文件管理文件管理 MATLAB提供了一组文件管理命令,能够对MATLAB的文件进行相关的管理功能:如列出文件名、显示或删除文件、显示或改变当前目录等。 10、MATLAB帮助系统帮助系统 MATLAB给用户提供了强大的在线帮助功能,用户可以在工

15、作空间内直接输入帮助命令以获得在线帮助,或者通过可视化界面的菜单命令得到帮助。MATLAB基础教程22页MATLAB程序设计基础本章要点 MATLAB常量与变量MATLAB中的数组的创建与引用MATLAB的算术运算符、关系运算符、逻辑运算符MATLAB的程序结构(顺序、分支和循环结构)MATLAB中M文件(命令文件和函数文件)创建与调用MATLAB中M文件的调试 本章知识点 MATLAB中的常量与变量、数组(一维数组、二维数组、多维数组)、算术运算符、关系运算符、逻辑运算符、顺序结构、分支结构、循环结构、M文件(命令文件和函数文件)、M文件的调试MATLAB基础教程23页 MATLAB中的特殊

16、的固定变量称为常量。这些常量具有特殊的意义。右表 列出了MATLAB语言中常用的特殊常量。MATLAB基础教程24页MATLAB程序设计基础 变量是给内存中的值(数值、字符串、数组)指定的标识。在MATLAB中,变量用来读取值,并且进行运算,最后再存入内存。变量是数值计算的基本单元。变量是变化的,在程序运行中变量的值可能会发生改变。 1、变量名变量名 MATLAB的变量名必须以字符开头,是字母和数字的任意组合,允许使用下划线。 2、变量的显示格式变量的显示格式 数据的显示格式由format命令控制。format只影响结果的显示,不影响其计算和存储。 3、变量的作用域变量的作用域 局部变量(Lo

17、cal):在函数中定义的变量,只能被定义它的函数访问。当函数被调用时,函数内部定义的变量保存在函数自己的工作区中,一旦函数调用完毕退出运行,内存中的变量将不存在。 全局变量(Global):全局变量指几个函数共享的变量。每个使用它的函数都要用global函数声明它为全局变量。 永久变量(Persistent):永久变量只能在函数文件中定义和使用,只允许定义它的函数存取。当定义它的函数退出运行时,MATLAB 不会在内存中清除它,下次调用这个函数,将使用它被保留的当前值。MATLAB基础教程25页MATLAB程序设计基础 变量是给内存中的值(数值、字符串、数组)指定的标识。在MATLAB中,变量

18、用来读取值,并且进行运算,最后再存入内存。变量是数值计算的基本单元。变量是变化的,在程序运行中变量的值可能会发生改变。 4、变量的清除变量的清除 clear函数 【clear】清除工作区中的所有变量,释放系统内存 mlock函数 mlock函数用来阻止M文件和MEX文件被清除。 5、变量的存取变量的存取 用save和load函数可以将变量存储到磁盘中的.mat文件(默认为二进制文件)中,并且可以将变量从磁盘中的.mat文件(默认为二进制文件)中读入MATLAB的工作空间。MATLAB基础教程26页MATLAB程序设计基础 数组是MATLAB中较简单的一种数据组织形式,在数值计算中的应用十分广泛

19、。数组可以视为矩阵的一种特殊表现形式。MATLAB基础教程27页MATLAB程序设计基础 MATLAB的运算符分成三大类: 算数运算符、关系运算符和逻辑运算符。这三种运算符中,算术运算符优先级最高,关系运算符次之,而逻辑运算符的优先级最低。 实际应用中,可以通过括号来调整运算过程。 1、算术运算符算术运算符l +、- 表示算术加法和减法l *、/ 表示算术乘法和除法l 表示左除l 表示乘方l .* 表示点乘l . 表示点左除l ./ 表示点右除l . 表示点乘方MATLAB基础教程28页MATLAB程序设计基础 MATLAB的运算符分成三大类: 算数运算符、关系运算符和逻辑运算符。这三种运算符

20、中,算术运算符优先级最高,关系运算符次之,而逻辑运算符的优先级最低。 实际应用中,可以通过括号来调整运算过程。 2、关系运算符关系运算符l 表示小于l 表示大于l = 表示大于或等于l = 表示等于l = 表示不等于MATLAB基础教程29页MATLAB程序设计基础 MATLAB的运算符分成三大类: 算数运算符、关系运算符和逻辑运算符。这三种运算符中,算术运算符优先级最高,关系运算符次之,而逻辑运算符的优先级最低。 实际应用中,可以通过括号来调整运算过程。 3、逻辑运算符逻辑运算符l & 逻辑与(and),表示两个数组的对应元素都是1,结果为1,否则为0l | 逻辑或(or),表示对应元素只要

21、有一个是1,结果为1,否则为0l 非(not),表示与元素相反l xor 异或,表示对应元素不同,结果为1,否则为0MATLAB基础教程30页MATLAB程序设计基础 MATLAB的运算符分成三大类: 算数运算符、关系运算符和逻辑运算符。这三种运算符中,算术运算符优先级最高,关系运算符次之,而逻辑运算符的优先级最低。 实际应用中,可以通过括号来调整运算过程。 MATLAB还提供了非常丰富的逻辑函数,这些逻辑函数非常有用。还提供了非常丰富的逻辑函数,这些逻辑函数非常有用。l all 查看数组的行或者列,每行或列的所有元素为1,结果为1l any 查看数组的行或者列,每行或列只要有一个元素为1,结

22、果为1l exist 查看变量或者函数是否存在l find 找出非零元素的位置标识l isempty 判断矩阵是否为空矩阵l isequal 判断对象是否相等l isnumeric 判断对象是否为数值型l bitand 按位与l bitor 按位或l bitcmp 按位反码,共n位,n必须小于操作数的二进制位数l bitxor 按位异或l & 捷径与l | 捷径或MATLAB基础教程31页MATLAB程序设计基础 MATLAB的运算符分成三大类: 算数运算符、关系运算符和逻辑运算符。这三种运算符中,算术运算符优先级最高,关系运算符次之,而逻辑运算符的优先级最低。 实际应用中,可以通过括号来调整

23、运算过程。 4、运算符的优先级运算符的优先级运算符的优先级从高到低排列如下:l ()l .、.、 、l +/- 、l .* 、./、 . 、*、/、l +、-l :l 、=、=、=l &l |l &l |MATLAB基础教程32页MATLAB程序设计基础 MATLAB的运算符分成三大类: 算数运算符、关系运算符和逻辑运算符。这三种运算符中,算术运算符优先级最高,关系运算符次之,而逻辑运算符的优先级最低。 实际应用中,可以通过括号来调整运算过程。 4、MATLAB的基本初等函数的基本初等函数MATLAB中的基本初等函数是指三角函数、对数函数、指数函数和复数函数等。 l abs(x):纯量的绝对值

24、或向量的长度 l sqrt(x):开平方 l real(z):复数z的实部 l imag(z):复数z的虚部 l conj(z):复数z的共轭复数 l angle(z):复数z的相角 l round(x):四舍五入至最近整数 l fix(x):无论正负,舍去小数至最近整数 l floor(x):地板函数,即舍去正小数至最近整数 l ceil(x):天花板函数,即加入正小数至最近整数 MATLAB基础教程33页MATLAB程序设计基础MATLAB的数据类型的数据类型 MATLAB的基本数值数据类型有两类:整数型和浮点型。 整数型数据按照表示范围可以分为int8、int16、int32、int64

25、、uint8、uint16、uint32、uint64八种类别,其中,每种类型标识的数据范围如下所示。当数据超过表示范围时,MATLAB将数据表示成该类型的最大值或者最小值。 2、MATLAB的数值精度的数值精度 MATLAB的数值精度就是MATLAB能够表示的最小实数,任何一个绝对值小于MATLAB的数值精度的实数都被当成0处理。 3、MATLAB的显示精度的显示精度 MATLAB的显示精度是指MATLAB显示的有效位数。MATLAB的显示精度是可以修改的,显示精度修改了,数据并没有变化,只是数据在MATLAB命令窗口中显示的有效位数不同而已。MATLAB中有如下所示三个函数可以设置显示精度

26、:format、vpa和digits。MATLAB基础教程34页MATLAB程序设计基础MATLAB的数据类型的数据类型 MATLAB的基本数值数据类型有两类:整数型和浮点型。 整数型数据按照表示范围可以分为int8、int16、int32、int64、uint8、uint16、uint32、uint64八种类别,其中,每种类型标识的数据范围如下所示。当数据超过表示范围时,MATLAB将数据表示成该类型的最大值或者最小值。 2、MATLAB的数值精度的数值精度 MATLAB的数值精度就是MATLAB能够表示的最小实数,任何一个绝对值小于MATLAB的数值精度的实数都被当成0处理。 3、MATL

27、AB的显示精度的显示精度 MATLAB的显示精度是指MATLAB显示的有效位数。MATLAB的显示精度是可以修改的,显示精度修改了,数据并没有变化,只是数据在MATLAB命令窗口中显示的有效位数不同而已。MATLAB中有如下所示三个函数可以设置显示精度:format、vpa和digits。MATLAB基础教程35页MATLAB程序设计基础 MATLAB提供了丰富的流程控制语句进行具体的程序设计,MATLAB语言的流程控制结构有顺序结构、分支结构和循环结构三种。 1、顺序结构顺序结构 顺序结构就是按顺序执行程序中的各条语句。语句在程序文件中的物理位置反映了程序的执行顺序。虽然大多数程序包含子结构

28、,但是他们整体上都是顺序结构。 2、分支结构分支结构 分支结构包括if语句和switch语句。 3、循环结构循环结构 循环结构包含for-end语句、while-end语句。 4、其他语句其他语句 break、continue、return和try-catch语句MATLAB基础教程36页MATLAB程序设计基础 M文件是包含MATLAB代码的文件。在MATLAB中,除了可以在命令窗口中输入命令逐句执行外,也可以和其他高级语言一样采用编程的方式,称为M文件编程。 1、MATLAB编程概述和编程原则编程概述和编程原则 MATLAB不仅是功能强大的高级语言,而且是一个集成的可视化的交互式开发环境,

29、用户在MATLAB提供的环境中编写和调试MATLAB程序。 MATLAB的编程原则如下:l 百分号“%”后面的内容是程序的注释信息,运用注释信息可使程序的可读性更强。l clear命令用于清除变量,通常用于主程序开头,可以清除工作空间中其他变量对程序运行的影响。避免在子程序中使用clear命令。l 调用函数前的参数赋值要在程序的开始部分,便于管理和维护。l 充分利用MATLAB提供的函数来进行运算。l 在语句后输入分号,使中间结果不显示在屏幕上,可以提高执行速度。l 输入少量数据时,可以使用input命令。l 尽量采用主程序调用子程序的方法,将所有子程序合在一起完成主程序的功能。l 充分利用调

30、试功能对程序进行调试,有的时候隐含的逻辑错误更不容易发现,危害却更大。l 设置MATLAB的工作路径和当前工作目录,方便操作和运行程序。MATLAB基础教程37页MATLAB程序设计基础 M文件是包含MATLAB代码的文件。在MATLAB中,除了可以在命令窗口中输入命令逐句执行外,也可以和其他高级语言一样采用编程的方式,称为M文件编程。 2、M文件的类型文件的类型 M文件按其内容和功能可以划分为命令文件和函数文件两大类。 命令文件,在MATLAB7.12版本中也称为脚本文件,是MATLAB代码按顺序组成的命令序列,不接受输入参数和输出参数,与MATLAB工作空间共享变量空间,可以对工作空间中的

31、变量进行操作,也可以产生新的变量。命令文件产生的所有变量都保存在工作空间里,用户可以随后对它们进行操作。 MATLAB的函数文件用来定义一个函数,需要制定输入参数和输出参数。函数文件中的代码处理输入参数传递来的数据,然后将处理结果作为输出参数返回。函数文件具有独立的内部变量空间。在调用该函数文件时,需要指定实际参数。 函数文件和命令文件的区别l 函数文件用function关键字定义,而命令文件则不用;l 函数文件可以传递参数,而命令文件不能传递参数;l 函数文件中定义和使用的是局部变量,只在函数的工作区内有效。 一旦退出函数即为无效变量。而命令文件中的变量都是全局变量,退出命令文件后仍然有效。

32、 l 函数文件能够扩展MATLAB的功能,用户可以构造一个全新的 MATLAB函数。 MATLAB基础教程38页MATLAB程序设计基础 M文件是包含MATLAB代码的文件。在MATLAB中,除了可以在命令窗口中输入命令逐句执行外,也可以和其他高级语言一样采用编程的方式,称为M文件编程。 3、M文件的创建文件的创建 M文件有MATLAB语言编写的,可在MATLAB环境下运行的源代码文件。M文件可以在MATLAB的程序编辑器中编写,也可以在文本编辑器中编写,都以.m为扩展名加以存储。命令文件的创建基本步骤如下:打开MATLAB的M文件编辑器或任何一个文本编辑器;l 写入MATLAB的命令代码;l

33、 保存文件名为filename.m即完成了命令文件的创建。函数文件的创建基本步骤如下:l 打开MATLAB的M文件编辑器或任何一个文本编辑器;l 写入MATLAB的代码,注意第一行必须用function关键字定义函数名、输入输出参数等信息;l 保存文件名为funcname.m,即完成了命令文件的创建。注意,文件名与函数名应同名,最好将M文件放置在MATLAB搜索路径下。MATLAB基础教程39页MATLAB程序设计基础 MATLAB中的函数以不同方式提供给用户:一种以内置方式在MATLAB核心中的函数,如sqrt和sin函数等;另一种通过函数文件实现的函数,如gamma函数和用户自定义函数等。

34、前一种函数在MATLAB核心中,用户看不到代码,执行效率非常高;后一种函数通过函数文件实现的函数,用户可以打开M文件看到实现代码,极大地扩展了MATLAB的功能。 1、MATLAB的函数类型的函数类型 MATLAB中的函数可以分为匿名函数、函数文件主函数、子函数、嵌套函数、私有函数和重载函数。 2、函数文件主函数函数文件主函数 一个函数文件只能包含一个主函数,每个函数文件第一行定义的函数就是函数文件主函数,通常将函数文件名和主函数名保持一致。主函数是针对其内部的嵌套函数和子函数而言的。一个函数文件中除了一个主函数外,还可以编写多个嵌套函数或子函数,以便在主函数中进行调用。 MATLAB基础教程

35、40页MATLAB程序设计基础 3、子函数子函数 一个函数文件只能包含一个主函数,但一个函数文件中可以包含多个函数,这些编写在主函数之后的函数都成为子函数。所有子函数都有自己独立的结构,只需要在位置上处在主函数之后即可。各个子函数的前后顺序都可以任意放置,与被调用的前后顺序无关。所有子函数只能被其所在的函数文件中的主函数或其他子函数调用。 4、嵌套函数嵌套函数 函数文件中,一个函数定义的内部可以定义一个或多个函数,这种定义在其他函数内部的函数就称为嵌套函数。嵌套函数可以多层发生,即一个函数内部可以嵌套多个函数,这些嵌套函数内部也可以继续嵌套其他函数。 5、私有函数私有函数 私有函数是具有限制性

36、访问权限的函数,他们对应的函数文件需要保存在名为“private”的文件夹下,这些私有函数在编写上和普通的的函数文件没有什么区别。但是私有函数只能被private目录的直接父目录下的命令文件或函数文件的主函数调用。 6、私有函数私有函数 私有函数是具有限制性访问权限的函数,他们对应的函数文件需要保存在名为“private”的文件夹下,这些私有函数在编写上和普通的的函数文件没有什么区别。但是私有函数只能被private目录的直接父目录下的命令文件或函数文件的主函数调用。MATLAB基础教程41页MATLAB程序设计基础 3、子函数子函数 一个函数文件只能包含一个主函数,但一个函数文件中可以包含多

37、个函数,这些编写在主函数之后的函数都成为子函数。所有子函数都有自己独立的结构,只需要在位置上处在主函数之后即可。各个子函数的前后顺序都可以任意放置,与被调用的前后顺序无关。所有子函数只能被其所在的函数文件中的主函数或其他子函数调用。 4、嵌套函数嵌套函数 函数文件中,一个函数定义的内部可以定义一个或多个函数,这种定义在其他函数内部的函数就称为嵌套函数。嵌套函数可以多层发生,即一个函数内部可以嵌套多个函数,这些嵌套函数内部也可以继续嵌套其他函数。 5、私有函数私有函数 私有函数是具有限制性访问权限的函数,他们对应的函数文件需要保存在名为“private”的文件夹下,这些私有函数在编写上和普通的的

38、函数文件没有什么区别。但是私有函数只能被private目录的直接父目录下的命令文件或函数文件的主函数调用。 6、重载函数重载函数 “重载”是计算机编程中非常重要的概念,他经常用在处理功能类似但参数类型或者参数个数不同的函数别写中。 MATLAB基础教程42页MATLAB程序设计基础 MATLAB中,可以在命令窗口通过命令行直接调用函数,也可以在M文件(命令文件或函数文件)中调用。MATLAB中,参数传递一般是按值传递。 1、函数调用函数调用 通过键入M文件名和相应的实际参数,就可以从命令行或者M文件(命令文件或函数文件)调用另外一个M文件(命令文件或函数文件)时。 2、参数传递参数传递 MAT

39、LAB中,参数传递过程主要是按值传递,也就是说,在函数调用过程中,MATLAB将传入的实际参数变量值赋给形式参数指定的变量名,这些变量都存储在函数的独立的变量空间中,该空间和工作空间是独立的。MATLAB的按值传递机制,当一个函数调用发生时,MATLAB 将会复制实参生成一个副本,然后把它们传递给函数。这次复制是非常重要的,因为它意味着虽然函数修改了输入参数,但它并没有影响到调用者的原值。防止了因函数修改变量而导致的严重错误。 对函数调用时,返回参数个数可以少于函数定义时的返回参数个数,但是不可以多于。比如,一个函数定义有n个返回参数,但是调用时,可以使用0n个返回参数。不需要的返回参数被丢弃

40、。函数调用时,按照定义时指定的顺序来返回参数。MATLAB基础教程43页MATLAB程序设计基础 1、MATLAB程序出错主要分为两类:程序出错主要分为两类: 语法错误,通常发生在M文件的解释过程中,一般是函数参数输入类型有误或者矩阵运算阶数不符,或者缺少括号、引号等,在运行时刻能检测出大多数该类错误,并指出错在哪一行 执行错误,是程序运行过程中出现溢出或者死循环等错误造成,执行错误与程序本身的逻辑有关,比较难发现和难解决。 2、下面是两种常用的调试方法:下面是两种常用的调试方法: 【直接调试法】直接调试法就是在M文件中,将某些语句后面的分号去掉,迫使M文件输出一些中间计算结果,以便发现可能的

41、错误。【工具调试法】工具调试法就是在程序中设置一些断点,利用MATLAB编辑调试器完成程序的调试。MATLAB编辑调试器是一个综合了代码编写、程序调试的集成可视化开发环境。MATLAB调试过程,主要是通过MATLAB编辑调试器的Debug菜单下的子项进行的。利用调试菜单Debug中的一些选项进行调试。MATLAB基础教程44页MATLAB程序设计基础MATLAB基础教程45页MATLAB数值运算 向量是组成矩阵的基本元素之一,可以把向量看作一维数组。行向量转置后得到列向量;列向量转置后得到行向量。 1、向量的创建和引用向量的创建和引用 向量的创建方法和一维数组的创建方法类似。行向量创建方法如下

42、:l 直接输入法 : 在命令窗口中直接输入。l 冒号输入法: 利用“:”来创建向量。l linspace方法: 利用linspace函数创建向量。l logspace方法: 利用logspace函数创建向量。MATLAB基础教程46页MATLAB数值运算2、向量的运算向量的运算 (1)向量的基本运算向量的基本运算向量可以与常数,也可以与向量之间做加、减、乘、除的运算。【注意】【注意】l 向量与常数加减乘除乘方运算时,向量里的每一个元素都与常数进行运算;l 向量与向量加、减运算时,要求向量的维度必须相同,并且向量中的每个元素与另一个向量中的每个相对应的元素进行运算;l 向量与向量乘、除运算时,对

43、两个向量的维度的要求参考矩阵乘除法;l 向量与向量点乘、点除、点乘方运算时,两个向量的维度必须相同,且向量中的每一个元素与另一个向量中的每个相对应的元素进行运算。 (2)向量的点积运算向量的点积运算 两个向量的点积等于一个向量的模与另一个向量在这个向量方向上的投影的乘积。MATLAB提供了dot函数来进行点击运算。向量点积运算的时候,两个向量的维度必须相同。MATLAB基础教程47页MATLAB数值运算2、向量的运算向量的运算 (3)向量的叉积运算向量的叉积运算 两个向量的叉积为两个向量的交点,并与此两向量所在平面垂直的向量。MATLAB提供了cross函数来进行叉积运算。向量叉积运算的时候,

44、两个向量的维度必须一致,且维度至少有一个为3。 (4)向量的混合积运算向量的混合积运算 混合积的运算通过dot函数和cross函数一起来完成。混合积的几何意义为:它的绝对值表示以向量为棱的平行六面体的体积。向量混合积运算的时候,应该注意两个运算的先后顺序不能颠倒。MATLAB基础教程48页MATLAB数值运算 矩阵是线性代数的基本运算单元。通常矩阵是指含有M行N列的矩形结构。矩阵中的元素可以是实数或者复数,由此矩阵可以被划分为实数矩阵和复数矩阵。线性代数中矩阵的基本形式,以及矩阵的基本运算,如加、减、内积、逆矩阵、矩阵转置、线性方程式、特征值、特征向量和矩阵分解等矩阵运算,MATLAB均支持。

45、用户通过MATLAB处理线性代数中的运算,可以很容易完成复杂的运算工作。MATLAB基础教程49页MATLAB数值运算 MATLAB中,矩阵主要分为三类:数值矩阵(实数矩阵和复数矩阵)、符号矩阵和特殊矩阵。这些矩阵的创建方法不完全相同。以下主要介绍数值矩阵的几种创建方法。 1、直接输入法直接输入法MATLAB中元素较少的简单矩阵可以在MATLAB命令窗口直接输入。【输入规则】l 必须以方括号“”作为矩阵的开始和结束标志;l 矩阵的行与行之间用分号“;”隔开或者分行输入;l 同一行中不同元素用逗号或者空格符来分割,空格的个数不限;l 矩阵元素可以采用表达式语句,MATLAB自动计算结果。MATL

46、AB基础教程50页MATLAB数值运算 MATLAB中,矩阵主要分为三类:数值矩阵(实数矩阵和复数矩阵)、符号矩阵和特殊矩阵。这些矩阵的创建方法不完全相同。以下主要介绍数值矩阵的几种创建方法。 2、M文件生成法文件生成法MATLAB中的矩阵可在M文件(命令文件)中创建,在命令窗口直接调用该命令文件。通常对于大型矩阵,用此方式十分方便。【注意】M文件中的变量名与文件名不能相同,否则调用时会出现变量名与函数名的混乱。 3、文本文件生成法文本文件生成法MATLAB中的矩阵可以由文本文件生成,即事先建立txt文件,在命令窗口用load函数调用此txt文件即可。【注意】txt文件中不含变量名称,文件名为

47、矩阵变量名,且txt文件中每行数值个数必须相等。MATLAB基础教程51页MATLAB数值运算MATLAB中内置了如下表所示特殊矩阵的生成函数,利用这些函数,可以生成一些具有特殊性质的矩阵。MATLAB基础教程52页MATLAB数值运算函数名函数功能生成空矩阵eye生成单位矩阵ones生成全1矩阵zeros生成零矩阵rand生成01之间随机分布矩阵randn生成零均值单位方差正态分布随机矩阵magic生成魔方矩阵diag生成对角矩阵triu生成上三角矩阵tril生成下三角矩阵company伴随矩阵sparse生成稀疏矩阵full还原稀疏矩阵为完全矩阵1、矩阵元素的扩充矩阵元素的扩充 【调用格式

48、】 M=A; B C 其中A是原矩阵;B、C是扩充矩阵,包含要扩充的元素;M是扩充后的矩阵。2、矩阵元素的删除矩阵元素的删除【调用格式】M(:,n)=; M(m,:)= M(:,n)=表示删除矩阵M的第n列元素;M(m,:)=表示删除矩阵M的第m行元素。3、矩阵元素的修改矩阵元素的修改【调用格式】M(m,n)=a; M(m,:)=a b ; M(:,n)=a b M(m,n)=a; 表示修改矩阵M中第m行第n列的元素为a;M(m,:)=a b ; 表示修改矩阵M中第m行所有的元素为a b ;M(:,n)=a b ;表示修改矩阵M中第n列的所有元素改为a b MATLAB基础教程53页MATLA

49、B数值运算4、矩阵元素的数据变换矩阵元素的数据变换矩阵元素取整【函数命令】 floor; ceil;round;fix【调用格式】floor(M);ceil(M);round(M);fix(A)floor(M)表示将矩阵中元素向下取整,即取不足整数;ceil(M);表示将矩阵中元素向上取整,即取过剩整数;round(M);表示将矩阵中元素按最近整数取整,即四舍五入取整;fix(A)表示将矩阵中元素按离零近的方向取整。矩阵元素的有理数形式【函数命令】rat【调用格式】n,d=rat(M)n,d=rat(M)表示将矩阵M表示为两个整数矩阵相除,即:M=n./d。矩阵元素取余数【函数命令】rem【调

50、用格式】R=rem(M,x) R=rem(M,x)表示矩阵M除以模数x后的余数。若x=0,则定义rem(M,0)=NaN;若x!=0,则整数部分由fix(M./x)表示,余数部分为A-x.*fix(M./x)。MATLAB基础教程54页MATLAB数值运算5、矩阵结构的改变矩阵结构的改变左右翻转【函数命令】fliplr【调用格式】fliplr(M) fliplr(M)表示矩阵M行数不变,其元素左右翻转。上下翻转【函数命令】flipud【调用格式】flipud(M) flipud(M)表示矩阵M行数不变,其元素上下翻转。按指定维度翻转【函数命令】flipdim【调用格式】 flipdim(M,d

51、im) flipdim(M,1)表示矩阵上下翻转;flipdim(M,2) 表示矩阵左右翻转。MATLAB基础教程55页MATLAB数值运算5、矩阵结构的改变矩阵结构的改变逆时针旋转【函数命令】rot90【调用格式】rot90(M);rot90(M,k) rot90(M)表示矩阵M逆时针旋转90度; rot90(M,k)表示矩阵逆时针旋转k*90度,k=+-1,+-2,平铺矩阵【函数命令】repmat【调用格式】repmat(M,m,n);repmat(M,m n);repmat(M,m,n,p,);repmat(M,m n p ;repmat(M,m,n)和repmat(M,m n)表示将矩

52、阵由mn块M矩阵平铺而成;repmat(M,m,n,p,)和repmat(M,m n p )表示矩阵由mnp个M矩阵平铺而成。【注意】repmat(M,m,n)中M是一个数a时,该命令返回全由a组成的mn矩阵。MATLAB基础教程56页MATLAB数值运算6、矩阵的变维矩阵的变维矩阵变维有两种方法:“:”和函数reshape。以下是这两种方法的介绍。“:”方法 【调用格式】M(:)=A(:) 该方法主要用于对两个已知维度的矩阵之间变维的操作。 M(:)=A(:)表示将A矩阵中的元素按列序排列后,再按照列序合并成与M矩阵维度相同的新矩阵,矩阵元素与A矩阵一样。reshape函数【调用格式】res

53、hape(M,m,n);reshape(M,m n);reshape(M,m,n,p,);reshape(M,m n p )该方法主要对于单个的矩阵变维操作。reshape(M,m,n)和reshape(M,m n)表示将矩阵M的维度变为mn,矩阵元素不变;reshape(M,m,n,p,)和reshape(M,m n p )表示将矩阵M的维度变为mnp,矩阵元素不变。MATLAB基础教程57页MATLAB数值运算【调用格式】matrixName(v):引用矩阵的第v个元素,其中v=(k-1)*m+s,参数m,n为矩阵维度,s,k为第v个元素所处矩阵的第s行第k列。matrixName(m,n

54、);引用矩阵的第m行n列的元素matrixName (m,:);引用矩阵的第m行的所有列元素matrixName (:,n);引用矩阵的第n列的所有行元素matrixName (m1:m2,n);引用矩阵的第n列中m1至m2行的元素matrixName (m,n1:n2);引用矩阵的第m行中n1至n2列的元素matrixName (m1 m2,n);引用矩阵的第n列中m1行和m2行的元素matrixName (m,n1 n2);引用矩阵的第m行中n1列和n2列的元素MATLAB基础教程58页MATLAB数值运算1、加、减运算加、减运算【运算符】 + -【运算规则】矩阵对应元素相加、减,按照线性

55、代数中矩阵加减的操作运算。2、乘法运算乘法运算矩阵相乘矩阵相乘【运算符】 *【运算规则】 按照线性代数中矩阵乘法的操作运算,即前面矩阵各行元素分别与后面矩阵各列对应元素相乘并将结果相加。【注意】前面矩阵的列数必须与后面矩阵的行数相同。矩阵与数相乘矩阵与数相乘【运算符】*【运算规则】按照线性代数中矩阵与单个数字乘法的操作运算,即单个数字分别与矩阵各元素相乘。矩阵点乘矩阵点乘【运算符】 .*【运算规则】按照线性代数中矩阵点乘法的操作运算,即两个维数相同矩阵对应元素相乘。【注意】两个相点乘的矩阵维度必须一致。MATLAB基础教程59页MATLAB数值运算内积内积【函数命令】dot【调用格式】dot(

56、A,B);dot(A,B,dim)dot(A,B)表示A、B为矩阵时返回矩阵A与B的点积(A与B 维度相同)。dot(A,B,dim)表示在dim维度数中给出A与B的点积。【注意】dot(A,B)相当于sum(A.*B)叉积叉积【函数命令】cross【调用格式】cross(A,B);cross(A,B,dim)cross(A,B)表示若A、B为三个元素的向量,则返回A、B的叉乘;若A、B为同维矩阵,则返回一个3n(列是A、B对应列的叉积且A、B都是3n矩阵);cross(A,B,dim)表示,dim维中向量A与B的叉积,A和B必须具有相同的维度,size(A,dim)和size(B,dim)必

57、须是3.混合积混合积【调用格式】dot(A,cross(B,C)混合积由点积和叉积两个函数实现,使用时先叉乘,后点乘,顺序不可颠倒。可以参考向量的混合积运算。MATLAB基础教程60页MATLAB数值运算卷积和反褶积卷积和反褶积【调用格式】conv(u,v),deconv(u,v),s,k=deconv(u,v)conv(u,v)表示向量u、v的卷积运算;deconv(u,v)表示向量u、v的反褶积运算;s,k=deconv(u,v)表示向量u、v的反褶积运算结果保存在变量s,k中。这两个运算对应的是多项式的乘法和除法。详细运算方法请参考本章的多项式运算的相关内容。MATLAB基础教程61页M

58、ATLAB数值运算3、除法运算除法运算矩阵左除和右除【运算符】 /【运算规则】左除和右除用于方程求解时,一般来说,x=Ab是方程A*x=b的解。而x=b/A是方程x*A=b的解。【注意】如果A为非奇异矩阵,则Ab=inv(A)*b,而b/A=b*inv(A),其中inv是矩阵的求逆函数。矩阵点除【运算符】./【运算规则】B./A表示矩阵B中的元素除以矩阵A中的对应元素,结果矩阵的维数不变,其中,A和B的维数相同。如果A,B其中有一个为单个数,则此数与另一个矩阵相应的每个元素做运算,结果矩阵与参加矩阵的维数相同。MATLAB基础教程62页MATLAB数值运算4、乘方运算乘方运算【运算符】【运算规

59、则】 当A为方阵、P为大于0的整数时,AP表示A的p次方,即A自乘P次;当P为小于0的整数时,AP表示A-1的|P|次方。【运算符】.【运算规则】 A.B表示矩阵A中元素对矩阵B中的对应元素求幂次方,其中A、B两个矩阵的维度必须一致。结果矩阵的维度与A、B矩阵的维度相同。 单个数的矩阵点乘方P.A表示该数对矩阵A中的所有元素求幂次方,结果矩阵的维度与A的维度相同。 矩阵的单个数点乘方A.P表示矩阵A中每个元素对P这个数字求幂次方。MATLAB基础教程63页MATLAB数值运算1、矩阵的转置矩阵的转置【运算符】【运算规则】 若矩阵A的元素为实数、则A返回A的转置;若矩阵A为复数矩阵,则A中的元素

60、由A对应元素的共轭复数构成。2、矩阵的逆矩阵的逆【函数命令】inv【调用格式】 inv(M)inv(M)表示求矩阵A的逆矩阵。【注意】不是所有矩阵都能求出逆矩阵,如果A为奇异阵或者近似奇异阵,则给出警告信息。3、方阵的行列式方阵的行列式【函数命令】det【调用格式】det(M)det(M)返回方针M的行列式的值。4、矩阵的秩矩阵的秩【函数命令】rank【调用格式】rank(M);rank(A,tol)rank(M)表示求矩阵A的秩。tol为给定误差。MATLAB基础教程64页MATLAB数值运算5、方阵的迹方阵的迹【函数命令】trace【调用格式】trace(M)trace(M)返回方阵M的行

61、列式的迹,即对角线元素之和。6、矩阵的元素个数矩阵的元素个数【函数命令】numel【调用格式】numel(M)numel(M)返回矩阵M中元素的个数。7、矩阵的特征值分解矩阵的特征值分解【函数命令】eig【调用格式】eig(M)eig(M)返回矩阵的特征值,并以向量形式存放。MATLAB基础教程65页MATLAB数值运算 线性方程组的一般形式可以表示如下:AX=B。其中,A为线性方程组等式左边各方程式的系数项,A=(aij)mn,X为欲求解的位置项,B代表线性方程组等式右边的已知项。 线性方程组的求解可以分为两类:一类是求方程组的唯一解(即特解),另一类是求方程组的无穷解(即通解)。可以通过方

62、程组系数矩阵的秩来判断:l 若系数矩阵的秩r=n(n为方程组中未知变量的个数),则有唯一解;l 若系数矩阵的秩r f=sym(a*x2+b*x+c) 使用已经定义的符号变量组成符号表达式。 syms x y a b c f=a*x2+b*x+c 利用单引号生成符号表达式。 f=a*x2+b*x+c %注意和直接定义一个字符串变量的相似和区别。MATLAB符号运算MATLAB基础教程78页符号方程是含有等号的符号表达式。例如,定义f=sym(a*x+b*x=0)就定义了一个符号方程f,它的值是a*x+b*x=0。MATLAB符号运算MATLAB基础教程79页 sym函数是个非常有用的函数,MAT

63、LAB还提供了这个函数更多应用。l sym函数可以创建符号变量时指定其实数复数属性。【调用格式】s=sym(s,flag),其中,flag为real和unreal。flag为real:声明的符号变量,附加的数字特性为实数变量flag为unreal:声明的符号变量,附加的数字特性为复数变量l sym函数可以进行符号与数值之间的转换【调用格式】sym(f,flag)其中,flag为fred。flag为f:返回符号的浮点表示形式flag为r:返回符号的有理表示形式,默认该形式flag为e:返回符号的有理表示形式,并根据eps给出理论表达式和实际计算的差flag为d:返回符号的十进制表示,有效位数由d

64、igits定义。MATLAB符号运算MATLAB基础教程80页 在符号表达式中,MATLAB会自动地将x作为自变量来处理,而将a,b,c等作为常量参数。也就是说,如果符号表达式中含有多于一个的符号变量时,在没有实现指定何者为自变量的情况下,MATLAB会按照数学常规自行决定谁是自变量。MATLAB自变量确定的原则如下:l 除了i和j之外,字母位置最接近x的小写字母;l 如果式子中有x,则x自动被默认为自变量。l 符号表达式中可以设置多个自变量。MATLAB的自变量确定的方法如下:l 事先在函数中明确指定。 l MATLAB自行默认按照上述原则确定。 MATLAB中可以利用函数findsym帮助

65、我们获取当前符号表达式中的自变量。 【调用格式】findsym(f); findsym(f,n) findsym(f)返回符号表达式f中的自变量列表。findsym(f,n)返回符号表达式f中的指定的自变量。MATLAB符号运算MATLAB基础教程81页【运算符】 + - * / 符号的加、减、乘、除和乘方运算与数值运算中的相应运算符相同,都是+、-、*、/、。【注意】符号关系运算时,不能使用“大于”、“小于”“大于等于”和“小于等于”等命令进行比较,但可以用isequal(是否等于)进行判断:两个符号表达式相等返回1,否则返回0。MATLAB符号运算MATLAB基础教程82页符号运算的结果通

66、常比较复杂,按照符号的相关函数可以对符号运算结果进行化简,完成展开、化简、替换、转换等功能。collect:合并同类项,即对同次幂的项进行合并【调用格式】 collect(f),collect(f,v) collect(f)对符号表达式f进行合并同类项的操作,自变量由系统指定。collect(f,v)对指定自变量v的符号表达式f进行合并同类项的操作。 factor:因式分解 【调用格式】factor(f) factor(f)对符号表达式f进行因式分解的操作。numden:将符号表达式从有理式变为分子与分母形式。【调用格式】N,D=numden(f)N,D=numden(f) 返回了符号表达式f的分子分母形式。其中N和D分别为分子和分母的表达式。expand:展开符号表达式【调用格式】expand(f)expand(f)将符号表达式展开。MATLAB符号运算MATLAB基础教程83页simplify:利用函数规则对表达式f进行化简【调用格式】simplify(f)simplify(f)将符号表达式按规则化简。simple:对表达式f进行化简,是表达式以最少的字符表示出来【调用格式】sim

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

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

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


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