




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、MATLAB及应用陈霞 2007.3课程的性质、目的和任务课程的性质、目的和任务 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的工作环境
3、 1.3、Matlab帮助系统第第1章章 Matlab概述概述n1.1、Matlab简介n1、MATLAB 的起源与开展nMATLAB 是“ 矩阵实验室 MATrix LABoratory的缩写,最初版本是由 Cleve Moler 博士用 FORTRAN 语言开发的矩阵分析软件。n80 年代初期,由 Cleve Moler 和 John Little采用 C 语言改写了 MATLAB 的内核。成立了 Mathworks 软件开发公司,并于1984 年将 MATLAB 正式推向市场。n1992 年初推出了应用于 Windows 操作系统的 MATLAB 4.x 版本。n1997 年推出 5.1
4、 版本。n1998 年推出 5.2 版本。n1999 年推出 MATLAB 5.3 版本,MATLAB 5.3对应于 Release 11 。n2000 年又推出了更为简便易学的 MATLAB 6.0 版本,MATLAB 6.0 对应于 Release 12。第第1章章 Matlab概述概述2、MATLAB 的主要特点MATLAB 的根本单位为矩阵.MATLAB 语言以解释方式工作.具有非常友好的人机界面。具有强大的作图和数据可视化功能.具有极强的可扩展性。3、MATLAB 的根本组成MATLAB 主程序、Simulink 动态系统仿真和 MATLAB 工具箱 Toolbox三大局部组成。主程
5、序包括了 MATLAB 语言、工作环境、句柄图形、数学函数库和应用程序接口五局部.第第1章章 Matlab概述概述n1.2、Matlab的工作环境1. MATLAB 的启动 桌面快捷方式启动 开始菜单方式启动2. MATLAB和退出 Matlab菜单命令/关闭按钮 在Matlab命令窗口输入exit或quit第第1章章 Matlab概述概述 MATLAB的桌面环境可以包含多个窗口,这些窗口分别为历史命令窗口(Command History)、命令行窗口(Command Window)、当前目录浏览器(Current Directory Browser)、工作空间浏览器(Workspace Br
6、owser)、目录分类窗口(Launch Pad)、数组编辑器(Array Editor)、M文件编辑器/调试器(Editor/Debugger)、超文本帮助浏览器(Help Navigator/Browser),这些窗口都可以内嵌在MATLAB主窗体中,组成MATLAB的用户界面。其中当MATLAB安装完毕并首次运行时,展示在用户面前的界面为MATLAB运行时的缺省界面窗口,如图1-1所示。 第第1章章 Matlab概述概述图1-1 MATLAB默认的用户界面第第1章章 Matlab概述概述n MATLAB 6.5的缺省界面和MATLAB 6.1的缺省界面相比还是有一定变化的,主要就是在界面
7、的左下角有一个名为“Start的启动菜单,在这个菜单中可以执行MATLAB产品的各种工具,并且可以查阅MATLAB包含的各种资源,它的功能和MATLAB的目录分类窗口(Launch Pad)功能非常类似。在默认的缺省用户界面中,新版本的MATLAB中没有了目录分类窗口(Launch Pad),而是工作空间浏览器(Workspace Browser)。n MATLAB启动的界面可以具有多种默认的选择,用户可以通过MATLAB界面中的“View菜单下的“Desktop Layout子菜单下的命令选择不同的MATLAB界面,这些命令分别为:第第1章章 Matlab概述概述nDefault:缺省的界面
8、,如图1-1所示。包含历史命令窗口(Command History)、命令行窗口(Command Window),此外工作空间浏览器(Workspace Browser)和当前目录浏览器(Current Directory Browser)两个窗口层叠在一起。nCommand Windows Only:仅包含命令行窗口(Command Window),此时MATLAB界面的外观类似于旧版本的MATLAB。nSimple:包含两个窗口命令行窗口(Command Window)和历史命令窗口(Command History),两个窗口并列在界面中,如图1-2所示。 第第1章章 Matlab概述概述
9、图1-2 选择Simple菜单命令的界面 第第1章章 Matlab概述概述nShort History和Tall History:这两个菜单命令包含的窗口类型和数量同默认的界面完全一致,不过排放的顺序不同,如图1-3、1-4所示。图1-3 选择Short History菜单命令的界面第第1章章 Matlab概述概述图1-4 选择Tall History菜单命令的界面第第1章章 Matlab概述概述nFive Panel:包含所有的MATLAB桌面窗口,在MATLAB界面中各个窗口处于平铺状态,如图1-5所示图1-5 选择Five Panel菜单命令的界面第第1章章 Matlab概述概述n在MA
10、TLAB用户界面的View菜单下还有一些菜单命令可以用来选择显示在图形界面中的窗口,用户可以根据自己的喜好选择配置用户界面。在本小结提及的各种用户交互的窗口将在后续的章节中详细讲述。一般情况下,建议用户选择“Command Windows Only方式来运行MATLAB。在这种启动方式下,MATLAB的启动速度比较快,占用的资源略少。第第1章章 Matlab概述概述3、MATLAB 菜单项菜单项File 文件菜单文件菜单 Edit 编辑菜单编辑菜单 View 视图菜单视图菜单Window 窗口菜单窗口菜单Web 连网信息连网信息Help 帮助菜单帮助菜单 第第1章章 Matlab概述概述n4.
11、 MATLAB工具栏n 用 MATLAB 的 M 文件编辑器新建一个 M 文件; n 用 MATLAB 编辑器翻开一个文件; n 将选中的内容剪切到剪贴板; n 将选中的内容复制到剪贴板; n 将剪贴板中的内容粘贴到光标指定的位置; n 撤消最近一次的操作; n 翻开 Simulink 浏览器; n 翻开 MATLAB 帮助窗口。第第1章章 Matlab概述概述n5.Command Windows运用入门n1Command Windows指令窗口简介第第1章章 Matlab概述概述n2最简单的计算器使用法n例1.1求 算术运算结果n1用键盘在Matlab指令窗口中输入以下内容n (12+2*(
12、7-4)/32n2在上述表达式输入完成后,按【Enter】键,该指令被执行n3在指令执行后,Matlab指令窗中将显示以下结果nans =n 22122 (74)/3 第第1章章 Matlab概述概述n例1.2简单矩阵 的输入步骤n1在键盘中输入以下内容n A=1,2,3;4,5,6;7,8,9n2按【Enter】键,该指令被执行n3在指令执行后,Matlab指令窗中将显示以下结果nA =n 1 2 3n 4 5 6n 7 8 9123456789A第第1章章 Matlab概述概述n当然我们也可以采用分行输入的形式n A=1,2,3n 4,5,6n 7,8,9nA =n 1 2 3n 4 5
13、6n 7 8 9第第1章章 Matlab概述概述n3计算结果的图象显示n例 1-3 绘制函数 y=2sin(1+x)的图像,并计算当 x=0.5 时的函数值。第第1章章 Matlab概述概述第第1章章 Matlab概述概述n5. MATLAB 通用命令第第1章章 Matlab概述概述n1.3 Matlab帮助系统帮助系统1、Matlab联机帮助 #工具条中的 按钮; #help菜单栏中前2 项中的任何一项; #在命令窗口中执行 helpdesk或doc。第第1章章 Matlab概述概述3、Matlab常用的窗口帮助命令常用的窗口帮助命令第第1章章 Matlab概述概述help 命令直接输入 h
14、elp,MATLAB 将列出所有的帮助主题,每个帮助主题对应于 MATLAB搜索路径中的一个目录;help 后加帮助主题,可获得指定帮助主题的帮助信息;help 后加函数名; help 后加命令名,将得到指定命令的用法;第第1章章 Matlab概述概述demo 命令第第1章章 Matlab概述概述nhelpwin 命令用于翻开 MATLAB 的帮助文件窗第第1章章 Matlab概述概述lookfor 命令允许用户通过完整的或局部关键字来搜索要查找的内容who 和 whos 的作用是列出在 MATLAB 工作内存中驻留的变量名exist 命令用来查找或检查变量和函数的存在性第第1章章 Matla
15、b概述概述n上机练习上机练习1n 1以两种方式翻开以两种方式翻开 MATLAB 工作窗口,工作窗口,进入进入MATLAB 6.5 的工作环境,并尝试用的工作环境,并尝试用不同的方式退出。不同的方式退出。 n 2尝试、熟悉尝试、熟悉 MATLAB 6.5 的各栏菜的各栏菜单以及各个工具栏的功能。单以及各个工具栏的功能。 n 3重新启动重新启动 MATLAB 6.5,进入,进入 MATLAB 工作窗口,用工作窗口,用 who 命令查看当前命令查看当前工作空间内有无变量及其值。工作空间内有无变量及其值。 n 4绘制函数绘制函数y=cos(5x+2)/sin(3x+1) 的图的图像,并求解当像,并求解
16、当 x=2 时的函数值。时的函数值。 n 5此时再次用此时再次用 who 命令查看工作空间命令查看工作空间内的变量名及其值,与内的变量名及其值,与 3比较,同时用比较,同时用whos 命令查看变量,比较与命令查看变量,比较与 who 命令的不命令的不同。同。 n 6熟练掌握熟练掌握 MATLAB 的通用命令。的通用命令。 n 7练习并熟练掌握练习并熟练掌握 MATLAB 的帮助命的帮助命令,学会利用令,学会利用 MATLAB的帮助信息。的帮助信息。n8用用 lookfor 命令查找函数命令查找函数 cos 的信息,的信息,并与并与 help 命令查找的结果相比较,注意采命令查找的结果相比较,注
17、意采用两种命令之间的差异。用两种命令之间的差异。第第2章章 Matlab语言程序设计语言程序设计n根本要求:根本要求:n(1) 了解了解Matlab的各种数据类型;的各种数据类型;n(2) 掌握掌握Matlab的运算符与操作符的含义和用法的运算符与操作符的含义和用法 ;n(3) 掌握掌握Matlab根本表达式并了解其常用函数分类;根本表达式并了解其常用函数分类;n(4) 熟练掌握熟练掌握 Matlab 的程序结构顺序结构、循环结构的程序结构顺序结构、循环结构和分支结构与流程控制语句和分支结构与流程控制语句 ;n(5) 了解并初步掌握了解并初步掌握 Matlab 的数据文件的读写;的数据文件的读
18、写; n(6) 学会学会 Matlab 的的M文件的编写方法,包括命令文件和函文件的编写方法,包括命令文件和函数文件。了解数文件。了解M件的调试命令和调试方法。件的调试命令和调试方法。第第2 2章章 MatlabMatlab语言程序设计语言程序设计n1 1、 MatlabMatlab数据类型数据类型n MATLABMATLAB的早期版本只有非常简单的二维的早期版本只有非常简单的二维数组和字符类型的数据,目前的数组和字符类型的数据,目前的MATLABMATLAB版版本中不仅有多达十几种的根本数据类型,本中不仅有多达十几种的根本数据类型,在不同的专业工具箱中还有特殊的数据类在不同的专业工具箱中还有
19、特殊的数据类型,并且型,并且MATLABMATLAB还支持面向对象的编程技还支持面向对象的编程技术,支持用户自定义的数据类型。术,支持用户自定义的数据类型。n MATLABMATLAB支持的根本数据类型见图支持的根本数据类型见图2-12-1。第第2 2章章 MatlabMatlab语言程序设计语言程序设计MATLAB数据类型基本数值类型字符串元胞数组结构内嵌对象函数句柄 Java对象 逻辑类型双精度类型 单精度类型整数类型用户自定义类int8, uint8int16, uint16int32, uint32int64, uin64图2-1 MATLAB的数据类型 第第2 2章章 MatlabM
20、atlab语言程序设计语言程序设计n获取MATLAB的数据类型列表可以在MATLAB命令行窗口中键入help datatypes命令。n 在图2-1中所示的各种数据类型都可以用于创立向量、矩阵或者多维数组。用户自定义的数据类型也是图示的各种数据类型的组合。在不同的MATLAB工具箱中具有自定义的数据类型,例如控制系统工具箱中定义的LTI对象,在滤波器设计工具箱中定义的滤波器对象,在符号数学工具箱中定义的符号类型数据等。这些工具箱中包含的特殊数据对象也都使用这些根本的数据类型组合构成。第第2 2章章 MatlabMatlab语言程序设计语言程序设计n 需要指出一点,MATLAB的根本数据类型是双
21、精度数据类型和字符类型。MATLAB的M语言和其他高级编程语言不同的是,MATLAB没有具体的变量或对象声明和定义过程,任何数据类型的变量或对象都可以利用面向对象编程技术中构造函数的方法或者数据类型转换的方法来创立其他数据类型对象和变量。MATLAB和Java语言、C+语言类似,所有数据类型就是相应的类,具有一定的面向对象的特点。MATLAB的不同数据类型的变量或对象占用的内存空间不尽相同,不同的数据类型的变量或对象也具有不同的操作函数。在本章中,将详细讲述MATLAB的根本数值类型、逻辑类型、字符串、元胞数组和结构的使用方法,其中,元胞数组是MATLAB中常用的一种独有的数据类型。第第2 2
22、章章 MatlabMatlab语言程序设计语言程序设计n变量和常量n数字变量的格式n字符串n单元型变量n结构型变量n矩阵、向量n多项式第第2 2章章 MatlabMatlab语言程序设计语言程序设计na) a) 变量和常量变量和常量 n变量变量( (包括函数包括函数) )的命名规那么:由英文字母、数的命名规那么:由英文字母、数字和下划线混合组成,不得包含空格和标点字和下划线混合组成,不得包含空格和标点 ;第;第一个字符必须是英文字母,最多包括一个字符必须是英文字母,最多包括3131个字符;个字符; 对字母的大小写敏感。对字母的大小写敏感。n 局部变量和全局变量局部变量和全局变量n 永久变量常量
23、永久变量常量n只能在某一函数体内使用,而不能从其他函数和只能在某一函数体内使用,而不能从其他函数和 MatlabMatlab工作空间访问的变量,就是局部变量。工作空间访问的变量,就是局部变量。n在几个函数及在几个函数及M atlabM atlab函数中都能使用的变量就是函数中都能使用的变量就是全局变量。全局变量。 全局变量名应尽可能大写,并由全局变量名应尽可能大写,并由globeglobe声明声明第第2 2章章 MatlabMatlab语言程序设计语言程序设计nMatlab Matlab 永久变量永久变量ans最近的答案infInfinity(无穷大)eps浮点数相对精度NaNNot-a-Nu
24、mber(非数)realmax最大浮点实数flops浮点运算次数realmin最小浮点实数computer计算机类型pi3.14159235358579inputname输入变量名i,j虚数单位size多维矩阵的各维长度length一维矩阵的长度第第2 2章章 MatlabMatlab语言程序设计语言程序设计n说明:n eps、realmax和realmin三个常量具体的数值与运行MATLAB的计算机相关,不同的计算机系统可能具有不同的数值,例如,在笔者的计算机上,这三个数值分别为eps=2.220410-16, realmax=1.797710308,realmin=2.225110-308
25、。n 和其他的高级编程语言所定义的常量不同,MATLAB的常量数值是可以修改的。例如,在MATLAB命令行窗口中可以键入如下的指令:pi=100,这样pi这个常量的数值就变成了100。但是,如果用clear指令去除变量后,pi将变成原有的常量数第第2 2章章 MatlabMatlab语言程序设计语言程序设计n Inf也可以写作inf,它为IEEE定义的算术数据无穷大数值,在MATLAB中进行诸如1.0/0.0或者exp(1000)的操作时都会得到这个数值。如果将inf应用于函数,那么计算结果可能为inf或者NaN。n NaN也可以写作nan,它为IEEE规定的某种运算得到的结果,例如0/0的运
26、算得到的结果就是NaN。NaN参与运算的结果也为NaN(关系运算除外)。 第第2 2章章 MatlabMatlab语言程序设计语言程序设计n说明:n MATLAB中所有的数据默认类型均为双精度类型,包括像NaN和Inf在内的上述假设干常数。n 对NaN和Inf进行数据转化时要注意,Inf将获取相应数据类型的最大值,而NaN往往返回相应整数数据类型的数值0,浮点数类型那么仍然为NaN。n 在运算中使用NaN可以防止因为执行了0/0这类能够产生错误的应用程序中断,可以辅助调试应用程序。 第第2 2章章 MatlabMatlab语言程序设计语言程序设计nb) b) 数字变量数字变量 nMatlabM
27、atlab内部的每一个数据元素都是用双精内部的每一个数据元素都是用双精度数度数doubledouble来表示和存储的。来表示和存储的。n变量输出时用户可以用变量输出时用户可以用formatformat命令设置或命令设置或改变输出格式。改变输出格式。n比方我要输出数据类型是比方我要输出数据类型是longlong,那么我就,那么我就定义输出:定义输出:nformat longformat long第第2 2章章 MatlabMatlab语言程序设计语言程序设计n短格式(Short):1.3333 0.0000默认,两位整数,4位小数n短格式e方式(Short e):1.3333e+00 1.234
28、5e-065位十进制数加指数n长格式(Long):1.33333333333333 0.00000123450000n16位进制数n长格式e方式(Long e):1.33333333333333e+00 1.2345000000000e-0616位十进制数加指数n银行格式(Bank):1.33 0.00两位小数n十六进制格式(Hex):3ff555555555 3eb46231abfd7116位十六进制数n+格式(+):+正、负或零n有理数Rational:1/3 2469/2000000000第第2 2章章 MatlabMatlab语言程序设计语言程序设计n注意:n MATLAB和C语言在处
29、理数据类型和变量时不同。在C语言中,任何变量在使用之前都必须声明,然后赋值,在声明变量时就指定了变量的数据类型。但是在MATLAB中,任何数据变量都不需要预先的声明,MATLAB将自动地将数据类型设置为双精度类型,假设需要使用其他类型的数据,那么必须通过数据类型的转换完成。MATLAB的数据类型名称同样就是数据类型转换的函数,利用这些函数来完成相应的数据类型转化的工作。n 关于数据类型转换函数的使用可以参阅相应的在线帮助。第第2 2章章 MatlabMatlab语言程序设计语言程序设计nc) c) 字符串字符串 n所有字符串都用单引号括起来。所有字符串都用单引号括起来。n s=matlab s
30、=matlab n字符中中的每个字符包括空格都是字符串变字符中中的每个字符包括空格都是字符串变量量( (矩阵或向量矩阵或向量) )中的一个元素。中的一个元素。n字符串中的字符以字符串中的字符以 ASCII ASCII 码形式储存并区分大码形式储存并区分大小小 ,用函数,用函数absabs可以看到字符的可以看到字符的ASCIIASCII码。码。n在在MatlabMatlab中,字符串和字符矩阵根本上是等价的。中,字符串和字符矩阵根本上是等价的。n s=matlab s=matlab 等价于等价于 s=matlab s=matlab 第第2 2章章 MatlabMatlab语言程序设计语言程序设计
31、表表2-2 常用的字符串操作函数常用的字符串操作函数 函 数 说 明 char 创建字符串,将数值转变成为字符串 double 将字符串转变成 Unicode 数值 blanks 创建空白的字符串(由空格组成) deblank 将字符串尾部的空格删除 ischar 判断变量是否是字符类型 strcat 水平组合字符串,构成更长的字符向量 strvcat 垂直组合字符串,构成字符串矩阵 strcmp 比较字符串,判断字符串是否一致 strncmp 比较字符串前 n 个字符,判断是否一致 strcmpi 比较字符串,比较时忽略字符的大小写 strncmpi 比较字符串前 n 个字符,比较时忽略字符
32、的大小写 findstr 在较长的字符串中查寻较短的字符串出现的索引 strfind 在第一个字符串中查寻第二个字符串出现的索引 strjust 对齐排列字符串 strrep 替换字符串中的子串 strmatch 查询匹配的字符串 upper 将字符串的字符都转变成为大写字符 lower 将字符串的字符都转变成为小写字符 第第2 2章章 MatlabMatlab语言程序设计语言程序设计n字符串举例:字符串举例:n A= China 中国中国 ;输出带引号的汉字;输出带引号的汉字n B=我是好学生我是好学生n c=I am fine.n s3=char(s, y,m,b,o,l,i,c);用函数
33、;用函数char生成字符生成字符串串n double(s3) ;字符串转换为数值代码;字符串转换为数值代码n abs(s3)n cellstr(s3) ;字符矩阵转换为字符串;字符矩阵转换为字符串n b=num2str(a) ;数字转换为字符串;数字转换为字符串n比较比较 b*2和和str2num(b)*2n ab=A, ,B,. n AB=中国中国;北京北京第第2 2章章 MatlabMatlab语言程序设计语言程序设计n例子例子2-1 2-1 组合字符串例如。组合字符串例如。n在在MATLABMATLAB命令行窗口中,键入下面的指令:命令行窗口中,键入下面的指令:n a = Hello;
34、a = Hello;n b = MOTO!; b = MOTO!;n c = strcat(a,b) c = strcat(a,b)nc =c =nHelloMOTO!HelloMOTO!n d =strvcat(a,b,c) d =strvcat(a,b,c)nd =d =nHello Hello nMOTO! MOTO! nHelloMOTO!HelloMOTO!n whos whos 第第2 2章章 MatlabMatlab语言程序设计语言程序设计nName Size Bytes Classn a 1x5 10 char arrayn b 1x5 10 char arrayn c 1x1
35、0 20 char arrayn d 3x10 60 char arraynGrand total is 50 elements using 100 bytesn 在例子2-1中,使用strcat函数和strvcat函数进行了字符串的组合。其中,与前一小节介绍的字符串组合不同,strvcat函数允许将不同长度的字符串组合成为字符矩阵,并且将短字符串扩充为与长字符串相同的长度。第第2 2章章 MatlabMatlab语言程序设计语言程序设计n例子例子2-2 2-2 字符串比较函数应用例如。字符串比较函数应用例如。n在在MATLABMATLAB命令行窗口中,键入如下的指令:命令行窗口中,键入如下的
36、指令:n a = The first string; a = The first string;n b = The second string; b = The second string;n c = strcmp(a,b) c = strcmp(a,b)nc =c =n 0 0n d = strncmp(a,b,4) d = strncmp(a,b,4)nd =d =n 1 1 第第2 2章章 MatlabMatlab语言程序设计语言程序设计n whosn Name Size Bytes Classn a 1x16 32 char arrayn b 1x17 34 char arrayn c
37、 1x1 1 logical arrayn d 1x1 1 logical arraynGrand total is 35 elements using 68 bytes 第第2 2章章 MatlabMatlab语言程序设计语言程序设计n 在例子2-2中,使用两种不同函数进行了字符串比较,strcmp比较两个字符串的全部字符,所以第一次比较时,系统返回了逻辑假值,而strncmp只比较指定字符串中的前n个字符,所以在第二次比较时,系统返回了逻辑真值。n 另外,使用isequal函数也可以比较两个或两个以上字符串是否一致。 第第2 2章章 MatlabMatlab语言程序设计语言程序设计nd)
38、单元型变量单元型变量 n 单元型变量是一种比较特殊的数据类型,本质上讲,单元型变量实单元型变量是一种比较特殊的数据类型,本质上讲,单元型变量实际上是一种以任意形式的数据为元素的多维数组。际上是一种以任意形式的数据为元素的多维数组。n单元型变量可以存放任何类型、任何大小的数据,单元型变量可以存放任何类型、任何大小的数据, 其大小是不定的。其大小是不定的。n A=1,2;3,4nA =n 1 2n 3 4n B=1:4, A, abcdnB = n 1x4 double 2x2 double abcdnB为单元型变量用花括号为单元型变量用花括号 cellplot(B) celldisp(B)第第2
39、 2章章 MatlabMatlab语言程序设计语言程序设计ne e 结构型变量结构型变量 n结构型变量是另一种可以将不同类型数据组合在一起的数结构型变量是另一种可以将不同类型数据组合在一起的数据类型,与单元型变量的不同在于结构型变量是以指针方据类型,与单元型变量的不同在于结构型变量是以指针方式来传递数据的。式来传递数据的。 D.a1=abcd; D.a2=1; D.a3=1,2,3,4; DD = a1: abcd a2: 1 a3: 1 2 3 4D为结构型变量为结构型变量 C=struct(c1,1,c2,B,c3,abcd)C = 1x3 struct array with fields
40、: c1 c2 c3 C为结构型变量为结构型变量第第2 2章章 MatlabMatlab语言程序设计语言程序设计nf) f) 矩阵、向量矩阵、向量nMatlabMatlab是以矩阵为根本运算单元的,数组作为独是以矩阵为根本运算单元的,数组作为独立的计算单元实体是不存在的,它的建立、存储立的计算单元实体是不存在的,它的建立、存储完全等同于矩阵,只是计算时在符号上做了不同完全等同于矩阵,只是计算时在符号上做了不同的约定。的约定。n向量是组成矩阵的根本元素之一。可以把行向量向量是组成矩阵的根本元素之一。可以把行向量看成看成1 1n n 阶矩阵,把列向量看成阶矩阵,把列向量看成n n1 1阶矩阵。向阶
41、矩阵。向量的根本运算采用数组运算法那么。量的根本运算采用数组运算法那么。第第2 2章章 MatlabMatlab语言程序设计语言程序设计nh)h)多多项式项式 n多项式是以多项式是以向量向量的形式表达的形式表达的。可以是的。可以是列向量列向量也可以是也可以是行向量行向量。n p=1,2,3n poly2sym(p)nans =nx2+2*x+3n m=3;4;5n poly2sym(m)nans =n3*x2+4*x+5,.,.)(11011110nnnnnnaaaaPaxaxaxaxP第第2 2章章 MatlabMatlab语言程序设计语言程序设计2 2、运算符与操作符、运算符与操作符 数学
42、运算符数学运算符操作符操作符第第2 2章章 MatlabMatlab语言程序设计语言程序设计n冒号冒号“ : n可以用来产生向量;可以用来产生向量;n用作矩阵的下标,局部地选择矩阵元素;用作矩阵的下标,局部地选择矩阵元素;n进行行循环操作。进行行循环操作。n续号续号“ 表示一行未完,而在下一行继续;表示一行未完,而在下一行继续; n分号分号“ ;n在方括号中,表示矩阵中行的结尾;在方括号中,表示矩阵中行的结尾;n用在每行的结尾,那么用在每行的结尾,那么 不显示该行运算的结果。不显示该行运算的结果。第第2 2章章 MatlabMatlab语言程序设计语言程序设计n 所谓逻辑数据类型就是仅具有两个
43、数值的一种数据类型,其中,一个数值为TRUE,另外一个数值为FALSE。在MATLAB中,参与逻辑运算或者关系运算的并不一定必须有逻辑类型的数据,任何数值都可以参与逻辑运算。这时,MATLAB将所有非零值看作逻辑真,将零值看作逻辑假。一般地,1表示逻辑真,0表示逻辑假。n 和一般的数值类型类似,逻辑类型的数据只能通过数值类型转换,或者使用特殊的函数生成相应类型的数组或者矩阵。第第2 2章章 MatlabMatlab语言程序设计语言程序设计n关于逻辑真假的规定:关于逻辑真假的规定:n在所有的关系表达式和逻辑表达式中,输入的任在所有的关系表达式和逻辑表达式中,输入的任何非何非 0 0 数都被看作是
44、数都被看作是“ “ 逻辑真逻辑真,而只有,而只有 0 0 才才被认为是被认为是“ “ 逻辑假逻辑假; n所有关系表达式和逻辑表达式的计算结果是一个所有关系表达式和逻辑表达式的计算结果是一个由由 0 0 和和 1 1 组成的组成的“ “ 逻辑矩阵逻辑矩阵 Logical Logical ArrayArray。矩阵中的。矩阵中的 1 1 表示表示“ “ 真真,0 0 表示表示“ “ 假假;n逻辑矩阵是一种特殊的数值矩阵。与逻辑矩阵是一种特殊的数值矩阵。与“ “ 数值类数值类有关的操作和函数对它也适用;但它又不同于普有关的操作和函数对它也适用;但它又不同于普通的通的“ “ 数值数值,它还表示对事物的
45、判断结论,它还表示对事物的判断结论“ “ 真真与与“ “ 假假 。 第第2 2章章 MatlabMatlab语言程序设计语言程序设计关系操作符关系操作符逻辑操作符逻辑操作符第第2 2章章 MatlabMatlab语言程序设计语言程序设计nMATLAB MATLAB 的关系操作符运算法那么:的关系操作符运算法那么: n当两个变量是标量当两个变量是标量 a a 和和 b b 时时 n 假设假设 a a、b b 之间关系成立,那么关系运算结果为之间关系成立,那么关系运算结果为 1 1; n 假设假设 a a、b b 之间关系不成立,那么关系运算结果为之间关系不成立,那么关系运算结果为 0 0; n当
46、两个维数相同的矩阵当两个维数相同的矩阵 A A 和和 B B 比较时,矩阵比较时,矩阵 A A、B B 比较比较的是相同位置的元素,按标量的运算规那么逐个进行。关的是相同位置的元素,按标量的运算规那么逐个进行。关系运算的结果是一个和系运算的结果是一个和 A A维数相同的矩阵,它的元素由维数相同的矩阵,它的元素由 0 0 和和 1 1 组成。组成。 n当一个矩阵当一个矩阵A A 和一个标量和一个标量 b b 比较时,把标量比较时,把标量 b b 和矩阵和矩阵A A 的每一个元素按标量关系运算规那么逐个比较。关系运算的每一个元素按标量关系运算规那么逐个比较。关系运算的结果是一个和数组的结果是一个和
47、数组 A A维数相同的矩阵,它是由维数相同的矩阵,它是由 0 0 和和 1 1 组成。组成。 n优先级优先级 由高到低为算术运算、关系运算和逻辑运算。由高到低为算术运算、关系运算和逻辑运算。第第2 2章章 MatlabMatlab语言程序设计语言程序设计n关系运算举例关系运算举例 A=3,4,8;9,0,2;5,3,7A = 3 4 8 9 0 2 5 3 7 B=4,4,1;7,8,4;5,1,7B = 4 4 1 7 8 4 5 1 7 E=(AB)E = 0 0 1 1 0 0 0 1 0 NE=(A=B)NE = 1 0 1 1 1 1 0 1 0 A0=(A5)A0 = 0 0 1
48、1 0 0 0 0 1 B0=(B A_B=A|BA_B = 1 1 1 1 1 1 1 1 1 C=AC = 0 0 0 0 1 0 0 0 0 cc=(A3)&(B A=3,4,8;9,0,2;5,3,7A = 3 4 8 9 0 2 5 3 7 B=4,4,1;7,8,4;5,1,7B = 4 4 1 7 8 4 5 1 7 AB=A&BAB = 1 1 1 1 0 1 1 1 1第第2 2章章 MatlabMatlab语言程序设计语言程序设计n运算符的优先级运算符的优先级n 在在M M语言中可以将这些不同的运算符组合起来创立复语言中可以将这些不同的运算符组合起来创立复杂
49、的运算表达式。杂的运算表达式。M M语言的运算符和普通的高级编程语言语言的运算符和普通的高级编程语言类似,也具有相应的计算优先级。这里将类似,也具有相应的计算优先级。这里将M M语言的运算以语言的运算以及相应的计算优先级进行了总结:及相应的计算优先级进行了总结:n (1) (1) 括号括号( )( )。n (2) (2) 数组转置数组转置(.)(.),数组幂,数组幂(.)(.),复转置,复转置()(),矩阵,矩阵幂幂()()。n (3) (3) 一元加一元加(+)(+),一元减,一元减(?)(?),逻辑非,逻辑非()()。n (4) (4) 数组乘法数组乘法(.(.* *) ),数组除法,数组
50、除法(./)(./),数组左除,数组左除(.)(.),矩阵乘法矩阵乘法( (* *) ),矩阵右除,矩阵右除(/)(/),矩阵左除,矩阵左除()()。n (5) (5) 加法加法(+)(+),减法,减法(?)(?)。 第第2 2章章 MatlabMatlab语言程序设计语言程序设计n(6) 冒号运算符(:)。n(7) 小于(),小于等于(),大于等于(=),等于(= =),不等于(=)。(8) 元素与(&)。(9) 元素或(|)。(10) 短路逻辑与(&)。(11) 短路逻辑或(|)。 第第2 2章章 MatlabMatlab语言程序设计语言程序设计 上面的运算符优先级是由高到
51、低排列的,例如括号运算符的优先级最高,数组转置等次之。如果同一级别的运算符出现在表达式中,那么按照运算符在表达式中出现的次序,由左向右排列。在使用M语言编写程序时,需要灵活使用这些运算符来具体实现不同的算法。 第第2 2章章 MatlabMatlab语言程序设计语言程序设计n3、表达式及函数、表达式及函数nMatlab 采用的是采用的是表达式表达式语言,用户输入的语句由语言,用户输入的语句由 Matlab 系统系统解释解释运行。用户可以在运行。用户可以在 Matlab 的命令窗口中键入命的命令窗口中键入命令,也可以在编辑器内编写应用程序。令,也可以在编辑器内编写应用程序。 nMatlab 语句
52、由表达式和变量组成,有两种最常见的语句语句由表达式和变量组成,有两种最常见的语句形式:形式:n 表达式表达式n 变量表达式变量表达式 t=6t = 6 sin(5*t+6)ans = -0.9918 y=sin(5*t+6)y = -0.9918第第2 2章章 MatlabMatlab语言程序设计语言程序设计n表达式由变量名、运算符、数字和函数名组成。表达式由变量名、运算符、数字和函数名组成。n表达式将按常规的优先纽从左至右执行运算;表达式将按常规的优先纽从左至右执行运算;n优先级的规定是指数运算级别最高,乘除运算次优先级的规定是指数运算级别最高,乘除运算次之;之;n括号可以改变运算顺序;括号
53、可以改变运算顺序;n书写表达式时,赋值符书写表达式时,赋值符“和运算符两侧允许和运算符两侧允许有空格,以增加可读性。但在复数或符号表达式有空格,以增加可读性。但在复数或符号表达式中要尽量防止空格,以防出错;中要尽量防止空格,以防出错;n表达式的末尾加表达式的末尾加 “ “; 时,时,MatlabMatlab系统只把数系统只把数值赋给变量,值赋给变量, 不显示计算结果;不加不显示计算结果;不加“;时,时, Matlab Matlab 系统将会在该条语句的下面直接显示运算系统将会在该条语句的下面直接显示运算结果。结果。第第2 2章章 MatlabMatlab语言程序设计语言程序设计nMatlab
54、Matlab 有十分丰富的函数资源,总共分为有十分丰富的函数资源,总共分为2424类。类。n常用有一下几类:常用有一下几类:n一般函数命令一般函数命令(GENERAL);(GENERAL);n操作符与操作操作符与操作(OPERATOR);(OPERATOR);n数据类型和结构数据类型和结构(DATETYPE);(DATETYPE);n根本矩阵和矩阵操作根本矩阵和矩阵操作ELMAT);ELMAT);n根本数学函数根本数学函数ELFUN);ELFUN);n二维图二维图(PLOTXY);(PLOTXY);n图形句柄图形句柄(GENGRAPH);(GENGRAPH);n三维图三维图(3DGRAPH);
55、(3DGRAPH);n语言和程序设计语言和程序设计(LANGUAGE);(LANGUAGE);n文件输入输出函数文件输入输出函数(IOFUN);(IOFUN);n符号工具箱符号工具箱(SYNBOLIC)(SYNBOLIC)。第第2 2章章 MatlabMatlab语言程序设计语言程序设计n上机练习上机练习2 2n1 1创立一个表达式创立一个表达式 ,并求当,并求当x=1x=1,y=2y=2时的时的z z值值n2 2计算计算 其中其中 。n3 3创立一个包含创立一个包含“ “ 她是我们班最好的学生她是我们班最好的学生字符串。字符串。 n4 4输入如下两个矩阵输入如下两个矩阵 A A 和和 B B
56、,对矩阵,对矩阵 A A 和和 B B 作关系运算,作关系运算,标识出两矩阵中元素相等的位置,元素值不等的位置,并标识出标识出两矩阵中元素相等的位置,元素值不等的位置,并标识出矩阵矩阵 A A 中所有小于中所有小于 0 0 的元素。的元素。n5 5对对 4 4中的矩阵中的矩阵 A A 和和 B B 作逻辑作逻辑“ “ 或或、“ “ 与与运算,运算,并标识出矩阵并标识出矩阵 B B 中所有大于中所有大于 2 2 并小于并小于 5 5 的元素位置。的元素位置。451x123312321A325823341B13sin25457. 0145 . 175. 375. 0222yexzxyxixy108
57、n %数值计算例子n 4+2nans =n 6n 2+4*i+3*exp(i*pi/6)nans =n 4.5981 + 5.5000in 2+4*i+3*exp(i*pi/6); %变量付值 a=2a = 2 %创立数组 x=3 4+3i abs(-1) pi/3x = 3.0000 4.0000 + 3.0000i 1.0000 1.0472 n %冒号生成法n x=0:2:8nx =n 0 2 4 6 8n %直接输入法创立2维数组n c=1,2+3*i,abs(-4),sin(0.6);3,3i,sqrt(4),cos(0)nc =n 1.0000 2.0000 + 3.0000i 4
58、.0000 0.5646 n 3.0000 0 + 3.0000i 2.0000 1.0000 n %全下标元素赋值法创立一个(1*3*4)的高维数组n A(1,4,:)=1:3nA(:,:,1) =n 0 1 0 1nA(:,:,2) =n 0 2 0 2nA(:,:,3) =n 0 3 0 3n %标准数组生成函数n ones(1,4)nans =n 1 1 1 1n randn(state,0)n randn(2,3) %产生(2*3)的正态随机阵nans =n -0.4326 0.1253 -1.1465n -1.6656 0.2877 1.1909n D=eye(3) %产生(3*3
59、)的单位阵nD =n 1 0 0n 0 1 0n 0 0 1n diag(D) %取D阵的对角元素nans =n 1n 1n 1n diag(diag(D) %内diag取D的对角元素,外diag利用一维数组生成对角阵nans =n 1 0 0n 0 1 0n 0 0 1n %数组的寻访与赋值n x=rand(2,4) %利用rand产生一个2*4的随机数组nx =n 0.9501 0.6068 0.8913 0.4565n 0.2311 0.4860 0.7621 0.0185n x(2)nans =n 0.2311n x(3,4,7) %寻访数组x的第3,4,7个元素nans =n 0.6
60、068 0.4860 0.4565n x(find(x0.5) %寻访大于0.5的元素nans =n 0.9501n 0.6068n 0.8913n 0.7621n x(1:3) %寻访前3个元素组成的子数组nans =n 0.9501 0.2311 0.6068n x(5:end) %寻访x数组的后4个元素,end是最后一个元素的下标nans =n 0.8913 0.7621 0.4565 0.0185n x(1 2 3 3 1)nans =n 0.9501 0.2311 0.6068 0.6068 0.9501n x(5)=0nx =n 0.9501 0.6068 0 0.4565n 0.2311 0.4860 0.7621 0.0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 办公自动化与医疗信息安全的关系研究
- 以用户为中心的创意产业与区块链版权结合之道
- 区块链技术革新医疗数据共享的密钥
- 办公空间中的医疗品牌建设与信任文化建设
- 医疗行业中的商业模式创新与机遇探索
- 冀教版数学四年级下册-分数的意义教学设计
- 医疗教育中的伦理议题溶栓治疗案例教学
- AI赋能智慧办公推动健康监测智能化发展
- 区块链技术在实体产业的应用与前景分析
- 腹主动脉腔静脉瘘的临床护理
- 错颌畸形预防课件
- 物业公司投标书范本
- 国家中小学智慧教育平台培训专题讲座
- 培训行业用户思维分析
- 气体分析仪的使用与维护
- 23秋国家开放大学《小学语文教学研究》形考任务1-5参考答案
- 高中数学知识点全总结PPT
- 许昌职业技术学院教师招聘考试历年真题
- 六年级下册第四单元复习教学设计
- 临床微生物学检验技术-苏州大学中国大学mooc课后章节答案期末考试题库2023年
- 人教版小学三年级数学下册面积练习
评论
0/150
提交评论