Matlab实训(全套课件472P).ppt

上传人(卖家):三亚风情 文档编号:2637717 上传时间:2022-05-13 格式:PPT 页数:472 大小:4.29MB
下载 相关 举报
Matlab实训(全套课件472P).ppt_第1页
第1页 / 共472页
Matlab实训(全套课件472P).ppt_第2页
第2页 / 共472页
Matlab实训(全套课件472P).ppt_第3页
第3页 / 共472页
Matlab实训(全套课件472P).ppt_第4页
第4页 / 共472页
Matlab实训(全套课件472P).ppt_第5页
第5页 / 共472页
点击查看更多>>
资源描述

1、Matlab实训 MATLAB概述MATLAB语言是一种广泛应用于工程计算及数值分析领域的新型高级语言,自1984年由美国 MathWorks 公司推向市场以来,历经十多年的发展与竞争,现已成为国际公认的最优秀的工程应用开发环境。MATLAB功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。在欧美各高等院校,MATLAB已经成为线性代数、自动控制理论、数字信号处理、时间序列分析、动态系统仿真、图像处理等课程的基本教学工具,成为大学生、硕士生以及博士生必须掌握的基本技能。MATLAB:是英文MATrix LABorotory(矩阵实验室)的缩写。一一. . MATLAB特点特点: :1.

2、 数值计算和符号计算功能 MATLAB的数值计算功能包括:矩阵运算、多项式和有理分式运算、数据统计分析、数值积分、优化处理等。符号计算将得到问题的解析解。2.MATLAB语言 MATLAB除了命令行的交互式操作以外,还可以程序方式工作。使用MATLAB可以很容易地实现C或FORTRAN语言的几乎全部功能,包括Windows图形用户界面的设计。3.图形功能MATLAB提供了两个层次的图形命令:一种是对图形句柄进行的低级图形命令,另一种是建立在低级图形命令之上的高级图形命令。利用MATLAB的高级图形命令可以轻而易举地绘制二维、三维乃至四维图形,并可进行图形和坐标的标识、视角和光照设计、色彩精细控

3、制等等。4.应用工具箱基本部分和各种可选的工具箱。基本部分中有数百个内部函数。 其工具箱分为两大类:功能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能、可视建模仿真功能及文字处理功能等。学科性工具箱专业性比较强,如控制系统工具箱、信号处理工具箱、神经网络工具箱、最优化工具箱、金融工具箱等,用户可以直接利用这些工具箱进行相关领域的科学研究。二二. . MATLAB集成环境集成环境1. MATLAB的安装和内容选择2. Desktop操作桌面的启动操作桌面的启动MATLAB的启动的启动Desktop操作桌面简介操作桌面简介工作区窗口命令历史窗口命令窗口工具栏菜单栏3. MATLAB

4、命令窗口(1) 命令窗口的菜单栏菜单栏共包含File、Edit、Window和Help四项。File菜单项: New命令:用于建立M文件、图形窗口。 Open命令:打开一个已经建立的M文件。 Run Script命令:执行一个命令文件。 Load Workspace命令:将变量装入当前空间。Save Workspace As命令:把当前工作空间的所有变量用后缀为.mat的文件保存起来。File菜单项: Show Workspace命令:打开变量浏览器。 Set Path命令:打开MATLAB的路径浏览器。 Preferences命令:打开命令窗口的显示格式。 Print Setup命令:设置打

5、印机的参数。 Print命令:打印和设置一些打印参数。 Print Selection命令:打印选中的内容。 Exit MATLAB命令:退出MATLAB系统。Edit菜单项: Undo、Cut、Copy和Paste等命令:分别用于撤销上一次操作、剪切、复制和粘贴。 Clear命令:删除内容。 Select All命令:用于选定所有文本内容。 Clear Session命令:清除命令编辑区的全部内容,但并不删除工作空间中的变量。Help菜单项:Help Window命令:打开MATLAB的帮助窗口。Help Tips命令:打开帮助窗口,并首先显示MATLAB的帮助系统的分类和使用方法。Help

6、 Desk(HTML)命令:打开系统WWW浏览器,并显示MATLAB的帮助桌面。Examples and Demos命令:可以通过演示MATLAB提供的例子来熟悉相关部分的用法。About MATLAB命令:打开关于MATLAB的版本和版权等信息。Subsribe命令:打开机器上的WWW浏览器,用户可过填写相关的表格来获得MathWorks公司的产品。Window菜单项: 利用Window菜单项可以查看目前MATLAB打开的所有窗口,并可选中某个窗口为当前窗口,从而实现在不同窗口之间的转换。(2) 命令窗口的工具栏 工具栏提供了一些命令按钮,使用命令按钮可使操作更快捷、更方便。 新建打开剪切

7、复制 粘贴 撤销恢复Simulink:打开 Simulink,Simulink 是一个用来对动态系统进行建模、仿真和分析的软件包,它支持连续、离散及两者混合的线性和非线性系统,也支持具有多种采样频率的系统。 Guide:快速启动 Guide,Guide 全称为 Graphical User Interface development environment,用于辅助设计图形用户接口,使用该工具可以简化 GUI 编程。Profiler:快速启动 Profiler 工具,Profiler 工具能够分析出程序运行时间消耗情况,用于帮助分析、改进 M 文件 Help:打开 MATLAB 帮助; Cur

8、rent Directory:设置当前目录(3) 命令窗口的命令编辑区 命令编辑区用于输入命令和显示计算结果。键入命令并按下回车键后,MATLAB就会解释执行所输入的命令,并在命令后面给出计算结果。 例如: 在MATLAB命令窗口输入命令: a=1,1.5,2,9,7;0,3.6,0.5,-4,4;7,10,-3,22,33;3,7,8.5,21,6;3,8,0,90,-20 将显示一个5*5矩阵。MATLAB 命令窗口。打开 MATLAB 时,命令窗口自动显示于 MATLAB 界面中。 运算提示符,表示 MATLAB 处于准备状态,用户可以输入命令,按下回车键执行,并在命令窗口中显示运行结果

9、 (4)命令历史窗口默认情况下命令历史窗口位于左下角,显示用户曾经输入过的命令,并显示输入的时间,方便用户查询。对于命令历史窗口中的命令,用户可以点击右键进行相应的操作。用户可以双击再次执行命令窗口中的命令。 命令历史窗口(5)工作区窗口工作区窗口与当前路径窗口共享一块空间,可以通过标签显示或隐藏。工作区窗口中显示当前工作区中的所有变量及其大小和类型等。通过工作区可以对这些变量进行管理。其中包含了工作区工具栏和显示窗口。通过工具栏可以新建或删除变量、导入导出数据、绘制变量的图形等。另外右键单击变量名可以对该变量进行操作。工作区窗口(6)当前路径窗口 当前路径窗口显示当前路径下的所有文件和文件夹

10、及其相关信息,并且可以通过当前路径工具栏或右键菜单对这些文件进行操作 。当前路径窗口 路径设置 除 MATLAB 默认的搜索路径外,用户可以设置搜索路径。设置方法为:选择 MATLAB 窗口中的 File | Set Path 命令,进入路径搜索对话框。添加选中目录 添加选中目录及其子目录 (7)MATLAB帮助系统 MATLAB 里有以下几种方法可获得帮助:帮助命令、帮助窗口、MATLAB帮助桌面或在线帮助页。对于Internet用户,还可直接链接到MathWorks公司的网页上(http:/)寻求帮助。4. MATLAB的退出要退出MATLAB系统,有三种方法: (1)单击MATLAB命令

11、窗口的“关闭”按钮。 (2)在命令窗口File菜单中选Exit MATLAB命令。 (3)在MATLAB命令窗口输入Exit和Quit命令。在MATLAB中,变量名是以字母开头,后接字母、数字或下划线的字符序列,最多19个字符,且区分字母的大小写。MATLAB提供的标准函数名必须用小写字母。三三. . 数学运算及数据变量数学运算及数据变量1.简单的数学运算(1/5)最简单的计算器使用法 直接输入法 存储变量法1.简单的数学运算(2/5)表达式书写规则 在大多数情况下,MATLAB 对空格不予处理,因此在书写表达式时,可以利用空格调整表达式的格式,使表达式更易于阅读。 在 MATLAB 表达式中

12、,遵守四则运算法则,与通常法则相同。即运算从左到右进行,乘法和除法优先于加减法,指数运算优先于乘除法,括号的运算级别最高;在有多重括号存在的情况下,从括号的最里边向最外边逐渐扩展。 需要注意的是,在 MATLAB 中只用小括号代表运算级别,中括号只用于生成向量和矩阵,花括号用于生成单元数组。1.简单的数学运算(3/5) MATLAB 的数学运算符 需要注意的是,右除和左除的意义并不相同。右除为常规的除法,而左除的意义为:ab=b/a。 符号功能实例+加法3+5=8-减法3-5=-2*矩阵乘法3*5=15.*乘,点乘,即数组乘法/右除3/5 =0.6000./数组右除左除35= 1.6667.数

13、组左除乘方35= 243.数组乘方矩阵共轭转置.矩阵转置1.简单的数学运算(4/5) 标点符号的使用 在 MATLAB 中,标点符号有着充分的意义,可以用标点符号进行运算,或者标点符号可以包含特定的意义。 标点符号定义标点符号定义分号(;)数组行分隔符;取消运行显示点(.)小数点;结构体成员访问逗号(,)数组列分隔符;函数参数分隔符省略号()续行符冒号(:)在数组中应用较多,如生成等差数列引号()定义字符串圆括号(( ))指定运算优先级;函数参数调用;数组索引等号(=)赋值语句方括号( )定义矩阵感叹号(!)调用操作系统运算花括号( )定义单元数组百分号(%)注释语句的标识1.简单的数学运算(

14、5/5)分号(;) 分号用于区分数组的行,或者用于一个语句的结尾处,取消运行显示。百分号(%) 该符号用于在程序文本中添加注释,增加程序的可读性。百分号之后的文本都将视作注释,系统不对其进行编译。2.MATLAB 中的常用数学函数 MATLAB 提供了一系列的函数支持基本的数学运算,这些函数中的大多数调用格式和我们平时的书写习惯一致,方便用户记忆和书写。2. 常用的操作命令和快捷键(1/3)为方便用户操作,MATLAB 中定义了一些快捷键。掌握一些常用的操作命令和快捷键,可以使得对 MATLAB 的操作更加便利。 2.常用的操作命令和快捷键(2/3) 常用的操作命令命令功能命令功能cd显示或改

15、变工作目录hold图形保持命令clc清空命令窗口load加载指定文件中的变量clear清除工作区中的变量pack整理内存碎片clf清除图形窗口path显示搜索目录diary日志文件命令quit退出 MATLABdir显示当前目录下文件save保存内存变量disp显示变量或文字的内容type显示文件内容echo命令窗口信息显示开关2.常用的操作命令和快捷键(3/3) 常用的操作快捷键快捷键功能快捷键功能(Ctrl + p)调用上一行Home(ctrl+a)移动到命令行开头(Ctrl + n)调用下一行End(ctrl+e)移动到命令行结尾(Ctrl + b)光标左移一个字符Ctrl + Home

16、移动到命令窗口顶部(Ctrl + f)光标右移一个字符Ctrl + End移动到命令窗口底部Ctrl + 光标左移一个单词Shift + Home选中光标和表达式开头之间的内容Ctrl + 光标右移一个单词Shift + End选中光标和表达式结尾之间的内容Esc取消当前输入行Ctrl + k剪切光标和表达式结尾之间的内容3.MATLAB 的数据类型整数 浮点数 复数 逻辑变量 各种数据类型之间的运算 各种数据类型之间的转换 数据类型操作函数 数据类型操作函数 其中的 type 包括 numeric、integer、float 和所有的数据类型。 函数描述double创建或转化为双精度类型si

17、ngle创建或转化为单精度类型int8,int16,int32,int64创建或转化为相应的有符号整数类型uint8,uint16,uint32,uint64创建或转化为相应的无符号整数类型isnumeric判断是否为整数或浮点数,是则返回true(或者1)isinteger判断是否为整数,是则返回true(或者1)isfloat判断是否为浮点数,是则返回true(或者1)isa(x,type)判断是否为 type 指定的类型,是则返回true(或者1)cast(x,type)设置x的类型为 typeintmax(type)type 类型的最大整数值intmin(type)type 类型的最小

18、整数值realmax(type)type 类型的最大浮点实数值realmin(type)type 类型的最小浮点实数值eps(type)type 类型eps值eps(x)变量x的eps值整数 MATLAB 支持8位、16位、32位和64位的有符号和无符号整数数据类型。 上述整数数据类型除了定义范围不同外,具有相同的性质。数据类型描述uint88位无符号整数,范围为0255(即028-1)int88位有符号整数,范围为-128127(即-2727-1)uint1616位无符号整数,范围为065535(即0216-1)int1616位有符号整数,范围为-3276832767(即-215215-1)

19、uint3232位无符号整数,范围为04294967295(即0232-1)int3232位有符号整数,范围为-21474836482147483647(即-231231-1)uint6464位无符号整数,范围为018446744073709551615(即0264-1)int6464位有符号整数,范围为-92233720368547758089223372036854775807(即-263263-1)定义整数变量定义变量:由于 MATLAB 默认的数据类型为双精度型,因此在定义整形变量时,需指定变量的数据类型。整数运算(1/2)运算:类型相同的整数之间可以进行运算,返回相同类型的结果。在进

20、行加、减和乘法运算时比较简单,在进行除法运算时稍微复杂一些,因为在多精度情况下,整数的除法不一定能得到整数的结果。在进行除法时,MATLAB 首先将两个数视为双精度类型进行运算,然后将结果转化为相应的整形数据。MATLAB 中不允许进行不同整数类型之间的运算。整数运算(2/2) 由于每种整数数据类型都有相应的取值范围,因此数学运算有可能产生结果溢出。MATLAB 利用饱和处理处理此类问题,即当运算结果超出了此类数据类型的上限或下限时,系统将结果设置为该上限或下限。 例 1 整数运算中的数据溢出 x=int8(100); y=int8(90); z=x+yz = 127 x-3*yans = -

21、27 x-y-y-yans = -128结果溢出上限,因此结果为127 3*y溢出上限,结果为127,继续计算,得到最后结果-27 计算x-y-y-y时,从左到右进行计算,结果溢出下限,因此结果为-128 浮点数(1/2)MATLAB 的默认数据类型是双精度类型(double)。为了节省存储空间,MATLAB 也支持单精度数据类型的数组。 单精度和双精度数据类型的取值范围和精度可以通过例 2 的方式进行查看 浮点数(2/2) 例 2-11 单精度和双精度数据类型的取值范围和精度 realmin(single)ans = 1.1755e-038 realmax(single)ans = 3.40

22、28e+038 eps(single)ans = 1.1921e-007 realmin(double)ans = 2.2251e-308 realmax(double)ans = 1.7977e+308 eps(double)ans = 2.2204e-016 创建单精度类型的变量时需要声明变量类型,与创建整型变量类似。单精度数据类型的数据进行运算时,返回值为单精度。复数复数由两个部分组成:实部和虚部。基本虚数单位等于,在 MATLAB 中虚数单位由 i 或者 j 表示。MATLAB 中可以通过两种方法创建复数,第一种方法为直接输入法,另一种创建复数的方法为通过 complex 函数。 复数

23、complex 函数的调用方法如下。 c = complex(a,b),返回结果 c 为复数,其实部为 a,虚部为 b。输入参数 a 和 b 可以为标量,或者维数、大小相同的向量、矩阵或者多维数组,输出参数和 a 和 b 的结构相同。a 和 b 可以有不同的数据类型,当 a 和 b 为各种不同的类型时,返回值分别为:当 a 和 b 中有一个为单精度时,返回结果为单精度;如果 a 和 b 其中一个为整数类型,则另外一个必须有相同的整数类型,或者为双精度型,返回结果 c 为相同的整数类型。 c = complex(a),只有一个输入参数,返回结果 c 为复数,其实部为 a,虚部为 0。但是此时 c

24、 的数据类型为复数。逻辑数组(1/5)逻辑数据类型通过 1 和 0 分别表示逻辑真和逻辑假。一些 MATLAB 函数或操作符会返回逻辑真或逻辑假表示条件是否满足。如表达式 (5 * 10) 40 返回逻辑真。在 MATLAB 中,存在逻辑数组,如下面的表达式返回逻辑数组: 30 40 50 60 70 40ans = 0 0 1 1 1逻辑数组(2/5)逻辑数组的创建 创建逻辑数组的最简单的方法为直接输入元素的值为 true 或者 false 逻辑数组也可以通过逻辑表达式生成逻辑数组(3/5) MATLAB 中返回逻辑值的函数和操作符 函数说明true, false将输入参数转化为逻辑值log

25、ical将数值转化为逻辑值& (and), | (or), (not), xor, any, all逻辑操作符&, |“并”和“或”的简写方式= (eq), = (ne), (gt), = (ge)关系操作符所有的 is* 类型的函数,cellfun判断函数strcmp, strncmp, strcmpi, strncmpi字符串比较逻辑数组(4/5)逻辑数组的应用 用于条件表达式 如果仅当条件成立时执行某段代码,可以应用逻辑数组进行判断和控制 用于数组索引在 MATLAB 中支持通过一个数组对另一个数组进行索逻辑数组(5/5) 逻辑数组的判断 MATLAB 中提供了一组函数用于判断数组是否为

26、逻辑数组 函数功能whos(x)显示数组 x 的元素值及数据类型islogical(x)判断数组 x 是否为逻辑数组,是则返回真isa(x, logical)判断数组 x 是否为逻辑数组,是则返回真class(x)返回数组 x 的数据类型cellfun(islogical, x)判断单元数组的每个单元是否为逻辑值各种数据类型之间的转换在 MATLAB 中,各种数据类型之间可以互相转化,转化方式为: 1)datatype(variable),其中 datatype 为目标数据类型,variable 为待转化的变量; 2)cast(x,type),将x的类型转化为type指定的类型。 转化时,如果

27、由高精确度数据类型转化为低精确度数据类型,则对数据进行四舍五入;如果由定义范围大的数据类型转化为定义范围小的数据类型,则返回目标数据类型的上限或下限。4.变量MATLAB 的变量命名规则与其他计算机语言类似,这一节介绍 MATLAB 的命名规则。首先,变量名必须是一个单一的词,不能包含空格,另外其命名必须符合下列规则: (1)变量名区分大小写。如 pi 和 Pi 是两个不同的变量。 (2)变量名长度不超过31个字符,超过的部分将会被忽略。 (3)变量名必须以字母开始,其后可以为字母、数字或者下划线。MATLAB 中的变量名不支持其他符号,因为其他符号在 MATLAB 中具有特殊的意义。 复数

28、i, ji, j预定义变量 pi pi 圆周率圆周率3.14153.1415 eps eps 浮点数识别精度浮点数识别精度2.222.221010-16-16 realmin realmin 最小正实数最小正实数2.22512.225110 10 -308-308 realmax realmax 最大正实数最大正实数1.79771.79771010308308 Inf Inf 无穷大无穷大 NaNNaN 不定值不定值MATLAB 2007b 的操作符 关系运算符 MATLAB 的关系运算符能用来比较两个相同大小的数组,或用来比较一个数组和一个标量。MATLAB 的关系运算符包括所有常用的比较运

29、算符,如表所示 运算符说明运算符说明小于大于=大于或等于=等于=不等于逻辑运算符 逻辑运算符主要包括“与”、“或”和“非”。使用逻辑运算符可以将多个表达式组合在一起,或者对关系表达式取反。MATLAB 中的逻辑运算符如表所示。运算符描述&与&与,只适用于标量。a & b,当 a 的值为假时,则忽略 b 的值|或|或,只适用于标量。a | b,当 a 的值为真时,则忽略 b 的值非运算符优先级 MATLAB 在执行含有关系运算和逻辑运算的数学运算时,同样遵循一套优先级原则。MATLAB 首先执行具有较高优先级的运算,然后执行具有较低优先级的运算;如果两个运算的优先级相同,则按从左到右的顺序执行。

30、MALTAB 中各运算符的优先级顺序如表所示,表中按照优先级从高到低的顺序排列各运算符。运算符圆括号 ()转置 (.),共轭转置 (),乘方 (.),矩阵乘方 ()标量加法 (+)、减法 (-)、取反 ()乘法 (.*),矩阵乘法 (*),右除 (./),左除 (.),矩阵右除 (/),矩阵左除 ()加法 (+),减法 (-),逻辑非 ()冒号运算符 (:)小于 (),小于等于 (),大于等于 (=),等于 (=),不等于 (=)数组逻辑与 (&)数组逻辑或 (|)逻辑与 (&)逻辑或 (|)4. 数据和变量函数名函数功能函数名函数功能sin正弦pow2以2为底的幂函数cos余弦sqrt平方根

31、tan正切abs模cot余切logloge 矩阵应用实例: :榄球防护用品的生产管理 一个工厂生产三种橄榄球用品 : 防护帽、 垫肩、臀垫。需要不同数量的:硬塑料 、 泡沫塑料 尼龙线 、 劳动力。为监控生产,管理者对它们之间的关系十分关心。为把握这些量的关系,他列出下面的表 管理者接到四份订单如上表所示。问应该如何计算每份订单所需的原材料,以便组织生产? 订单 1 订单 2 订单3 订单 4 防护帽 35 20 60 45 垫肩 10 15 50 40 臀垫 20 12 45 20 将表格写成矩42235206045132 , 1015504013320124520322AB输入下面Matl

32、abMatlab指令 A=4 2 3;1 3 2;1 3 3;3 2 2,A=4 2 3;1 3 2;1 3 3;3 2 2, B=35 20 60 45;10 15 50 40;20 12 45 20B=35 20 60 45;10 15 50 40;20 12 45 20 C=AC=A* *B B 请自行计算观看结果Matlab基本指令向量的创建和运算x1=1 2 4,x2=1,2,1,x3=x1x1=1 2 4,x2=1,2,1,x3=x1, ,x4=1;2;3x4=1;2;3 运行结果 x1 = 1 2 4x1 = 1 2 4 x2 = 1 2 1 x2 = 1 2 1 x3 = x4

33、 = x3 = x4 = 1 1 1 1 2 2 2 2 4 3 4 3 x1=3.4:6.7,x1=3.4:6.7, x2=3.4:2:6.7 x2=3.4:2:6.7 x3=2.6:-0.8:0 x3=2.6:-0.8:0 运算结果x1 =x1 = 3.4000 4.4000 5.4000 6.4000 3.4000 4.4000 5.4000 6.4000 x2 =x2 = 3.4000 5.4000 3.4000 5.4000 x3 =x3 = 2.6000 1.8000 1.0000 0.2000 2.6000 1.8000 1.0000 0.2000 默认间隔为1.0指令x=lin

34、space(a,b,n) x=linspace(a,b,n) 在a,ba,b区间产生 n n 个等分点( (包括端点) ) x=linspace(0,1,5)x=linspace(0,1,5)结果x = x = 0 0.2500 0.5000 0.7500 1.00000 0.2500 0.5000 0.7500 1.0000 设x=x1 x2 x3; y=y1 y2 y3;x=x1 x2 x3; y=y1 y2 y3;为两个三维行向量,a,ba,b为标量。 向量的数乘:a a* *x=ax=a* *x1 ax1 a* *x2 ax2 a* *x3x3 向量的平移: x+b=x1+b x2+b

35、 x3+bx+b=x1+b x2+b x3+b 向量和: x+y=x1+y1 x2+y2 x3+y3x+y=x1+y1 x2+y2 x3+y3 向量差: x-y=x1-y1 x2-y2 x3-y3 x-y=x1-y1 x2-y2 x3-y3 数的乘幂: 如 a2a2 x.x.* *y=x1y=x1* *y1 x2y1 x2* *y2 x3y2 x3* *y3 (y3 (元素群乘积) ) x./y=x1/y1 x2/y2 x3/y3 (x./y=x1/y1 x2/y2 x3/y3 (元素群右除,右边的y y做分母) ) x.y=y1/x1 y2/x2 y3/x3 (x.y=y1/x1 y2/x2

36、 y3/x3 (元素群左除,左边的x x做分母) ) x.5=x15 x25 x35 (x.5=x15 x25 x35 (元素群乘幂) ) 2.x=2x1 2x2 2x3 (2.x=2x1 2x2 2x3 (元素群乘幂) ) x.y=x1y1 x2y2 x3y3 (x.y=x1y1 x2y2 x3y3 (元素群乘幂) )l数组的查找函数是数组的查找函数是find,它能够查找数组中的非零,它能够查找数组中的非零数组元素,并返回其数组索引值。数组元素,并返回其数组索引值。lfind函数在函数在MATLAB中的使用语法形式:中的使用语法形式:(1) a=find(A)返回数组返回数组A中非零元素的单

37、下标索引中非零元素的单下标索引(2)a,b=find(A)返回数组返回数组A中非零元素的双下标索引中非零元素的双下标索引放方式。放方式。MatlabMatlab有许多内部函数,可直接作用于向量产生一个同维的函数向量。x=linspace(0,4x=linspace(0,4* *pi,100);pi,100);(产生100100维向量x x)y=y=sinsin(x); (y(x); (y也自动为100100维向量) )y1=sin(x).2;y1=sin(x).2;y2=exp(-x).y2=exp(-x).* *sin(x); sin(x); 观察结果 直接输入法创建简单矩阵。 A=1 2

38、3 4; 5 6 7 8; 9 10 11 12A=1 2 3 4; 5 6 7 8; 9 10 11 12 B=-1.3,sqrt(3);(1+2) B=-1.3,sqrt(3);(1+2)* *4/5,sin(5);exp(2),6 4/5,sin(5);exp(2),6 观察运行结果 全1 1阵 ones(n), ones(m,n), ones(size(A)ones(n), ones(m,n), ones(size(A) 全零阵: zeros(n) zeros(n) ,zeros(m,n), zeros(size(A) zeros(m,n), zeros(size(A) 常常用于对某个

39、矩阵或向量赋常常用于对某个矩阵或向量赋0 0初值初值 单位阵: eye(n)eye(n),eye(m,n) eye(m,n) 随机阵: rand(m,n)rand(m,n), rand(n)=rand(n,n)rand(n)=rand(n,n)用于随机模用于随机模拟,拟, 数字在数字在01间,满足均匀分布,间,满足均匀分布,常和常和rand(seed,k)rand(seed,k)配合使用配合使用。将randrand指令运行多次,观察结果。程序: y1=rand(1,5), y2=rand(1,5),y1=rand(1,5), y2=rand(1,5), rand(seed,3), x1=ran

40、d(1,5), rand(seed,3), x1=rand(1,5), rand(seed,3), x2=rand(1,5) rand(seed,3), x2=rand(1,5)结果sizesize(A A) 返回一个二元素向量,第一个元素返回一个二元素向量,第一个元素为为A A的行数,第二个元素为的行数,第二个元素为A A的列数;的列数;sizesize(A A,1 1) 返回返回A A的行数;的行数;sizesize(A A,2 2) 返回返回A A的列数;的列数;lengthlength(A A) 返回返回maxmax(sizesize(A A););flipudflipud(A A)

41、矩阵作上下翻转;矩阵作上下翻转;fliplrfliplr(A A) 矩阵作左右翻转;矩阵作左右翻转;diagdiag(A A) 提取提取A A的对角线元素,返回列向量;的对角线元素,返回列向量;diagdiag(v v) 以向量以向量v v做对角元素创建对角矩阵;做对角元素创建对角矩阵;创建矩阵(符号矩阵的创建) 用指令“syms”syms”说明符号变量。 syms a11 a12 a13 a14 a21 a22 a23 syms a11 a12 a13 a14 a21 a22 a23 a24 a31 a32 a33 a34 b11 b12 b13 a24 a31 a32 a33 a34 b1

42、1 b12 b13 b14 b21 b22 b23 b24 b31 b32 b33 b14 b21 b22 b23 b24 b31 b32 b33 b34b34 A1=a11 a12 a13 a14 ;a21 a22 a23 A1=a11 a12 a13 a14 ;a21 a22 a23 a24; a31 a32 a33 a34,a24; a31 a32 a33 a34, B1=b11 b12 b13 b14 ;b21 b22 b23 B1=b11 b12 b13 b14 ;b21 b22 b23 b24; b31 b32 b33 b34 b24; b31 b32 b33 b34 运行矩阵的运

43、算(矩阵的加减、数乘、乘积)C=A1+B1C=A1+B1D=A1-B1D=A1-B1syms c, cA=csyms c, cA=c* *A1A1A2=A1(:,1:3), B1A2=A1(:,1:3), B1G=A2G=A2* *B1 B1 矩阵的运算(矩阵的加减、数乘、乘积)A, A_trans=AA, A_trans=AH=1 2 3 ; 2 1 0 ; 1 2 3 ,H=1 2 3 ; 2 1 0 ; 1 2 3 ,K=1 2 3 ; 2 1 0 ; 2 3 1K=1 2 3 ; 2 1 0 ; 2 3 1h_det=det(H), k_det=det(K),h_det=det(H),

44、 k_det=det(K),H_inv=inv(H),K_inv=K-1H_inv=inv(H),K_inv=K-1矩阵的运算(左除和右除)左除“ ” ”: 求矩阵方程AX=BAX=B的解;( A A 、B B的行要保持一致) 解为 X=ABX=AB; 当A A为方阵且可逆时有X=AB=inv(A)X=AB=inv(A)* *B B;右除“ / ”/ ”: 求矩阵方程XA=BXA=B的解 (A A 、B B的列要保持一致) 解为 X=B/A X=B/A , 当A A为方阵且可逆时有X=B/A=BX=B/A=B* *inv(A)inv(A)矩阵的运算(左除和右除) 求矩阵方程:设设A A、B B

45、满足关系式:满足关系式:ABAB2B+A,2B+A,求求B B。其中其中A=3 0 1; 1 1 0; 0 1 4A=3 0 1; 1 1 0; 0 1 4。 解:有(A-2I)B(A-2I)BA A 程序 : A=3 0 1; 1 1 0;0 1 4;A=3 0 1; 1 1 0;0 1 4;B=inv(A-2B=inv(A-2* *eye(3)eye(3)* *A,A,B=(A-2B=(A-2* *eye(3)Aeye(3)A 观察结果:1.1.矩阵元素的标识 : A(i,j) A(i,j)表示矩阵A A 的第 i i 行 j j 列的元素; 采用矩阵元素的序号来引用矩阵元素。矩阵元素的序

46、号就是相应元素在内存中的排列顺序。在MATLAB中,矩阵元素按列存储,先第一列,再第二列,依次类推。 例如 A=1,2,3;4,5,6; A(3) ans= 2 2.2.向量标识方式 A(vr,vc) A(vr,vc): vr=i1,i2,ik vr=i1,i2,ik、vc=j1,j2,juvc=j1,j2,ju分别是含有矩阵A A的行号和列号的单调向量。 A(vr,vc) A(vr,vc)是取出矩阵A A的第i1,i2,iki1,i2,ik行与j1,j2,juj1,j2,ju列交叉处的元素所构成新矩阵。取出A A的1 1、3 3行和1 1、3 3列的交叉处元素构成新矩阵A1A1程序 A=1

47、0 1 1 2;0 1 -1 2 3;A=1 0 1 1 2;0 1 -1 2 3; 3 0 5 1 0;2 3 1 2 1, 3 0 5 1 0;2 3 1 2 1, vr=1, 3;vc=1, 3; vr=1, 3;vc=1, 3; A1=A(vr, vc)A1=A(vr, vc)观察结果)将A A分为四块,并把它们赋值到矩阵B B中,观察运行后的结果。程序 A11=A(1:2,1:2),A12=A(1:2,3:5),A11=A(1:2,1:2),A12=A(1:2,3:5), A21=A(3:4,1:2),A22=A(3:4,3:5)A21=A(3:4,1:2),A22=A(3:4,3:

48、5) B=A11 A12;A21 A22B=A11 A12;A21 A22结果 修改矩阵A A,将它的第1 1行变为0 0。 程序: A=1 0 1 1 2;0 1 -1 2 3;A=1 0 1 1 2;0 1 -1 2 3; 3 0 5 1 0;2 3 1 2 1 3 0 5 1 0;2 3 1 2 1 A(1,:)=0 0 0 0 0; AA(1,:)=0 0 0 0 0; A 删除上面矩阵A A的第1 1、3 3行。 程序: A(1,3,:)= A(1,3,:)= 结果n 从一个矩阵中取出若干行(列)构成新矩阵成为剪从一个矩阵中取出若干行(列)构成新矩阵成为剪裁,冒号裁,冒号“:”:”是

49、非常重要的剪裁工具。是非常重要的剪裁工具。 A A( : : )逐列提取)逐列提取A A中的所有元素作为一个列向量;中的所有元素作为一个列向量; A A(i i) 把把A A看作列向量看作列向量A A( : : ),取其中第),取其中第i i个元个元素;素; A A(r r,c c)提取)提取A A中,中,r r定义的行,和定义的行,和c c定义的列所定义的列所构成的构成的A A的子矩阵;的子矩阵; A A(r r, : : )提取)提取A A中,中,r r定义的行,和全部列所构成定义的行,和全部列所构成的的A A的子矩阵;的子矩阵; A A( : : ,c c)提取)提取A A中,全部行,和

50、中,全部行,和c c定义的列所构定义的列所构成的成的A A的子矩阵;的子矩阵; 还可利用一般向量和还可利用一般向量和endend运算符来表示矩阵下标,运算符来表示矩阵下标,从而获得子矩阵。从而获得子矩阵。endend表示某一维的末尾元素下标。表示某一维的末尾元素下标。n将几个矩阵接在一起成为拼接,左右拼接行数将几个矩阵接在一起成为拼接,左右拼接行数要相同,上下拼接列数要相同。要相同,上下拼接列数要相同。 n键入:键入:D=C, zeros(2,1)D=C, zeros(2,1)n输出:输出: D=D=n 1 3 0 1 3 0n 4 6 0 4 6 0det(A) det(A) : 方阵的行列

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(Matlab实训(全套课件472P).ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|