【精品】matlab及应用课件ppt(完整版)_第1页
【精品】matlab及应用课件ppt(完整版)_第2页
【精品】matlab及应用课件ppt(完整版)_第3页
【精品】matlab及应用课件ppt(完整版)_第4页
【精品】matlab及应用课件ppt(完整版)_第5页
已阅读5页,还剩320页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MATLAB及应用,陈霞 2007.3,课程的性质、目的和任务,Matlab 是一个可视化的计算程序,被广泛地应用在科学运算领域里。它具有功能强大、使用简单等特点,内容包括:数值计算、符号计算、数据拟合、图形图像处理、系统模拟和仿真分析等功能。此外,用Matlab还可以进行动画设计、有限元分析等。 本课程的目的是使学生能够运用Matlab进行一般的工程计算,掌握Matlab的基本技术(基本计算、矩阵处理、符号运算和图形显示技术等),为将来从事工程技术方面的产品开发、科学研究、工程计算和管理打下一定的基础。,教学基本要求,1.了解Matlab语言特点、熟悉Matlab视窗环境、掌握Matlab帮助功能的基本使用方法。2.掌握Matlab中变量和函数的有关概念、以及矩阵和多项式的构造方法。掌握数组运算和矩阵运算,并能够使用常用的几种常用的函数进行简单问题的求解。3.搞清符号变量和符号表达式的定义,并能用符号运算解决一般的微积分和方程求解问题。掌握Matlab程序设计的几种基本控制转移语句,学会使用简单M文件的编程。4.掌握二维平面图形和三维立体图形的绘制方法,进行数据可视化处理。理解用户图形界面程序的构造,掌握编程方法。5.能够利用Matlab进行简单的通讯与电子工程项目的仿真,第1章 Matlab概述,1.1、Matlab简介 1.2、Matlab的工作环境 1.3、Matlab帮助系统,第1章 Matlab概述,1.1、Matlab简介1、MATLAB 的起源与发展MATLAB 是“ 矩阵实验室”( MATrix LABoratory)的缩写,最初版本是由 Cleve Moler 博士用 FORTRAN 语言开发的矩阵分析软件。80 年代初期,由 Cleve Moler 和 John Little采用 C 语言改写了 MATLAB 的内核。成立了 Mathworks 软件开发公司,并于1984 年将 MATLAB 正式推向市场。1992 年初推出了应用于 Windows 操作系统的 MATLAB 4.x 版本。1997 年推出 5.1 版本。1998 年推出 5.2 版本。1999 年推出 MATLAB 5.3 版本,MATLAB 5.3对应于 Release 11 。2000 年又推出了更为简便易学的 MATLAB 6.0 版本,MATLAB 6.0 对应于 Release 12。,第1章 Matlab概述,2、MATLAB 的主要特点MATLAB 的基本单位为矩阵.MATLAB 语言以解释方式工作.具有非常友好的人机界面。具有强大的作图和数据可视化功能.具有极强的可扩展性。3、MATLAB 的基本组成MATLAB 主程序、Simulink 动态系统仿真和 MATLAB 工具箱( Toolbox)三大部分组成。主程序包括了 MATLAB 语言、工作环境、句柄图形、数学函数库和应用程序接口五部分.,第1章 Matlab概述,1.2、Matlab的工作环境1. MATLAB 的启动 桌面快捷方式启动 开始菜单方式启动2. MATLAB和退出 Matlab菜单命令/关闭按钮 在Matlab命令窗口输入exit或quit,第1章 Matlab概述,MATLAB的桌面环境可以包含多个窗口,这些窗口分别为历史命令窗口(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章 Matlab概述,图1-1 MATLAB默认的用户界面,第1章 Matlab概述,MATLAB 6.5的缺省界面和MATLAB 6.1的缺省界面相比还是有一定变化的,主要就是在界面的左下角有一个名为“Start”的启动菜单,在这个菜单中可以执行MATLAB产品的各种工具,并且可以查阅MATLAB包含的各种资源,它的功能和MATLAB的目录分类窗口(Launch Pad)功能非常类似。在默认的缺省用户界面中,新版本的MATLAB中没有了目录分类窗口(Launch Pad),而是工作空间浏览器(Workspace Browser)。 MATLAB启动的界面可以具有多种默认的选择,用户可以通过MATLAB界面中的“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:包含两个窗口命令行窗口(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界面中各个窗口处于平铺状态,如图1-5所示,图1-5 选择Five Panel菜单命令的界面,第1章 Matlab概述,在MATLAB用户界面的View菜单下还有一些菜单命令可以用来选择显示在图形界面中的窗口,用户可以根据自己的喜好选择配置用户界面。在本小结提及的各种用户交互的窗口将在后续的章节中详细讲述。一般情况下,建议用户选择“Command Windows Only”方式来运行MATLAB。在这种启动方式下,MATLAB的启动速度比较快,占用的资源略少。,第1章 Matlab概述,3、MATLAB 菜单项File( 文件)菜单 Edit( 编辑)菜单 View( 视图)菜单Window( 窗口)菜单Web( 连网信息)Help( 帮助)菜单,第1章 Matlab概述,4. MATLAB工具栏 用 MATLAB 的 M 文件编辑器新建一个 M 文件; 用 MATLAB 编辑器打开一个文件; 将选中的内容剪切到剪贴板; 将选中的内容复制到剪贴板; 将剪贴板中的内容粘贴到光标指定的位置; 撤消最近一次的操作; 打开 Simulink 浏览器; 打开 MATLAB 帮助窗口。,当前工作路径,第1章 Matlab概述,5.Command Windows运用入门1)Command Windows指令窗口简介,第1章 Matlab概述,2)最简单的计算器使用法例1.1求 算术运算结果(1)用键盘在Matlab指令窗口中输入以下内容 (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概述,当然我们也可以采用分行输入的形式 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-10x2+5x-8的图像,for 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章 Matlab概述,1.3 Matlab帮助系统1、Matlab联机帮助 #工具条中的 按钮; #help菜单栏中前2 项中的任何一项; #在命令窗口中执行 helpdesk或doc。,2、Matlab的网上资源web菜单栏,第1章 Matlab概述,3、Matlab常用的窗口帮助命令,第1章 Matlab概述,help 命令直接输入 help,MATLAB 将列出所有的帮助主题,每个帮助主题对应于 MATLAB搜索路径中的一个目录;help 后加帮助主题,可获得指定帮助主题的帮助信息;help 后加函数名; help 后加命令名,将得到指定命令的用法;,第1章 Matlab概述,demo 命令,第1章 Matlab概述,helpwin 命令用于打开 MATLAB 的帮助文件窗,第1章 Matlab概述,lookfor 命令允许用户通过完整的或部分关键字来搜索要查找的内容who 和 whos 的作用是列出在 MATLAB 工作内存中驻留的变量名exist 命令用来查找或检查变量和函数的存在性,第1章 Matlab概述,上机练习(1)( 1)以两种方式打开 MATLAB 工作窗口,进入MATLAB 6.5 的工作环境,并尝试用不同的方式退出。 ( 2)尝试、熟悉 MATLAB 6.5 的各栏菜单以及各个工具栏的功能。 ( 3)重新启动 MATLAB 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章 Matlab语言程序设计,基本要求:(1) 了解Matlab的各种数据类型;(2) 掌握Matlab的运算符与操作符的含义和用法 ;(3) 掌握Matlab基本表达式并了解其常用函数分类;(4) 熟练掌握 Matlab 的程序结构(顺序结构、循环结构和分支结构)与流程控制语句 ;(5) 了解并初步掌握 Matlab 的数据文件的读写; (6) 学会 Matlab 的M文件的编写方法,包括命令文件和函数文件。了解M件的调试命令和调试方法。,第2章 Matlab语言程序设计,1、 Matlab数据类型 MATLAB的早期版本只有非常简单的二维数组和字符类型的数据,目前的MATLAB版本中不仅有多达十几种的基本数据类型,在不同的专业工具箱中还有特殊的数据类型,并且MATLAB还支持面向对象的编程技术,支持用户自定义的数据类型。 MATLAB支持的基本数据类型见图2-1。,第2章 Matlab语言程序设计,图2-1 MATLAB的数据类型,第2章 Matlab语言程序设计,获取MATLAB的数据类型列表可以在MATLAB命令行窗口中键入help datatypes命令。 在图2-1中所示的各种数据类型都可以用于创建向量、矩阵或者多维数组。用户自定义的数据类型也是图示的各种数据类型的组合。在不同的MATLAB工具箱中具有自定义的数据类型,例如控制系统工具箱中定义的LTI对象,在滤波器设计工具箱中定义的滤波器对象,在符号数学工具箱中定义的符号类型数据等。这些工具箱中包含的特殊数据对象也都使用这些基本的数据类型组合构成。,第2章 Matlab语言程序设计,需要指出一点,MATLAB的基本数据类型是双精度数据类型和字符类型。MATLAB的M语言和其他高级编程语言不同的是,MATLAB没有具体的变量或对象声明和定义过程,任何数据类型的变量或对象都可以利用面向对象编程技术中构造函数的方法或者数据类型转换的方法来创建其他数据类型对象和变量。MATLAB和Java语言、C+语言类似,所有数据类型就是相应的类,具有一定的面向对象的特点。MATLAB的不同数据类型的变量或对象占用的内存空间不尽相同,不同的数据类型的变量或对象也具有不同的操作函数。在本章中,将详细讲述MATLAB的基本数值类型、逻辑类型、字符串、元胞数组和结构的使用方法,其中,元胞数组是MATLAB中常用的一种独有的数据类型。,第2章 Matlab语言程序设计,变量和常量数字变量的格式字符串单元型变量结构型变量矩阵、向量多项式,第2章 Matlab语言程序设计,a) 变量和常量 变量(包括函数)的命名规则:由英文字母、数字和下划线混合组成,不得包含空格和标点 ;第一个字符必须是英文字母,最多包括31个字符; 对字母的大小写敏感。 局部变量和全局变量 永久变量(常量)只能在某一函数体内使用,而不能从其他函数和 Matlab工作空间访问的变量,就是局部变量。在几个函数及M atlab函数中都能使用的变量就是全局变量。 (全局变量名应尽可能大写,并由globe声明),第2章 Matlab语言程序设计,Matlab 永久变量,第2章 Matlab语言程序设计,说明: eps、realmax和realmin三个常量具体的数值与运行MATLAB的计算机相关,不同的计算机系统可能具有不同的数值,例如,在笔者的计算机上,这三个数值分别为eps=2.220410-16, realmax=1.797710308,realmin=2.225110-308。 和其他的高级编程语言所定义的常量不同,MATLAB的常量数值是可以修改的。例如,在MATLAB命令行窗口中可以键入如下的指令:pi=100,这样pi这个常量的数值就变成了100。但是,如果用clear指令清除变量后,pi将变成原有的常量数,第2章 Matlab语言程序设计,Inf也可以写作inf,它为IEEE定义的算术数据无穷大数值,在MATLAB中进行诸如1.0/0.0或者exp(1000)的操作时都会得到这个数值。如果将inf应用于函数,则计算结果可能为inf或者NaN。 NaN也可以写作nan,它为IEEE规定的某种运算得到的结果,例如0/0的运算得到的结果就是NaN。NaN参与运算的结果也为NaN(关系运算除外)。,第2章 Matlab语言程序设计,说明: MATLAB中所有的数据默认类型均为双精度类型,包括像NaN和Inf在内的上述若干常数。 对NaN和Inf进行数据转化时要注意,Inf将获取相应数据类型的最大值,而NaN往往返回相应整数数据类型的数值0,浮点数类型则仍然为NaN。 在运算中使用NaN可以避免因为执行了0/0这类能够产生错误的应用程序中断,可以辅助调试应用程序。,第2章 Matlab语言程序设计,b) 数字变量 Matlab内部的每一个数据元素都是用双精度数(double)来表示和存储的。变量输出时用户可以用format命令设置或改变输出格式。比如我要输出数据类型是long,那么我就定义输出:format long,第2章 Matlab语言程序设计,短格式(Short):1.3333 0.0000(默认,两位整数,4位小数)短格式e方式(Short e):1.3333e+00 1.2345e-06(5位十进制数加指数)长格式(Long):1.33333333333333 0.00000123450000(16位进制数)长格式e方式(Long e):1.33333333333333e+00 1.2345000000000e-06(16位十进制数加指数)银行格式(Bank):1.33 0.00(两位小数)十六进制格式(Hex):3ff555555555 3eb46231abfd71(16位十六进制数)+格式(+):+(正、负或零)有理数(Rational):1/3 2469/2000000000,第2章 Matlab语言程序设计,注意: MATLAB和C语言在处理数据类型和变量时不同。在C语言中,任何变量在使用之前都必须声明,然后赋值,在声明变量时就指定了变量的数据类型。但是在MATLAB中,任何数据变量都不需要预先的声明,MATLAB将自动地将数据类型设置为双精度类型,若需要使用其他类型的数据,则必须通过数据类型的转换完成。MATLAB的数据类型名称同样就是数据类型转换的函数,利用这些函数来完成相应的数据类型转化的工作。 关于数据类型转换函数的使用可以参阅相应的在线帮助。,第2章 Matlab语言程序设计,c) 字符串 所有字符串都用单引号括起来。 s=matlab 字符中中的每个字符(包括空格)都是字符串变量(矩阵或向量)中的一个元素。字符串中的字符以 ASCII 码形式储存并区分大小 ,用函数abs可以看到字符的ASCII码。在Matlab中,字符串和字符矩阵基本上是等价的。 s=matlab 等价于 s=matlab ,第2章 Matlab语言程序设计,表2-2 常用的字符串操作函数,第2章 Matlab语言程序设计,字符串举例: A= China 中国 ;输出带引号的汉字 B=我是好学生 c=I am fine. s3=char(s, y,m,b,o,l,i,c);用函数char生成字符串 double(s3) ;字符串转换为数值代码 abs(s3) cellstr(s3) ;字符矩阵转换为字符串 b=num2str(a) ;数字转换为字符串比较 b*2和str2num(b)*2 ab=A, ,B,. AB=中国;北京,第2章 Matlab语言程序设计,例子2-1 组合字符串示例。在MATLAB命令行窗口中,键入下面的指令: a = Hello; b = MOTO!; c = strcat(a,b)c =HelloMOTO! d =strvcat(a,b,c)d =Hello MOTO! HelloMOTO! whos,第2章 Matlab语言程序设计,Name Size Bytes Class a 1x5 10 char array b 1x5 10 char array c 1x10 20 char array d 3x10 60 char arrayGrand total is 50 elements using 100 bytes 在例子2-1中,使用strcat函数和strvcat函数进行了字符串的组合。其中,与前一小节介绍的字符串组合不同,strvcat函数允许将不同长度的字符串组合成为字符矩阵,并且将短字符串扩充为与长字符串相同的长度。,第2章 Matlab语言程序设计,例子2-2 字符串比较函数应用示例。在MATLAB命令行窗口中,键入如下的指令: a = The first string; b = The second string; c = strcmp(a,b)c = 0 d = strncmp(a,b,4)d = 1,第2章 Matlab语言程序设计, whos Name Size Bytes Class a 1x16 32 char array b 1x17 34 char array c 1x1 1 logical array d 1x1 1 logical arrayGrand total is 35 elements using 68 bytes,第2章 Matlab语言程序设计,在例子2-2中,使用两种不同函数进行了字符串比较,strcmp比较两个字符串的全部字符,所以第一次比较时,系统返回了逻辑假值,而strncmp只比较指定字符串中的前n个字符,所以在第二次比较时,系统返回了逻辑真值。 另外,使用isequal函数也可以比较两个或两个以上字符串是否一致。,第2章 Matlab语言程序设计,d) 单元型变量 单元型变量是一种比较特殊的数据类型,本质上讲,单元型变量实际上是一种以任意形式的数据为元素的多维数组。单元型变量可以存放任何类型、任何大小的数据, 其大小是不定的。 A=1,2;3,4A = 1 2 3 4 B=1:4, A, abcdB = 1x4 double 2x2 double abcdB为单元型变量(用花括号), cellplot(B) celldisp(B),第2章 Matlab语言程序设计,e) 结构型变量 结构型变量是另一种可以将不同类型数据组合在一起的数据类型,与单元型变量的不同在于结构型变量是以指针方式来传递数据的。, 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: c1 c2 c3 C为结构型变量,第2章 Matlab语言程序设计,f) 矩阵、向量Matlab是以矩阵为基本运算单元的,数组作为独立的计算单元实体是不存在的,它的建立、存储完全等同于矩阵,只是计算时在符号上做了不同的约定。向量是组成矩阵的基本元素之一。可以把行向量看成1n 阶矩阵,把列向量看成n1阶矩阵。向量的基本运算采用数组运算法则。,第2章 Matlab语言程序设计,h)多项式 多项式是以向量的形式表达的。可以是列向量也可以是行向量。 p=1,2,3 poly2sym(p)ans =x2+2*x+3 m=3;4;5 poly2sym(m)ans =3*x2+4*x+5,第2章 Matlab语言程序设计,2、运算符与操作符,数学运算符,操作符,第2章 Matlab语言程序设计,冒号“ :” 可以用来产生向量;用作矩阵的下标,部分地选择矩阵元素;进行行循环操作。续号“ ” 表示一行未完,而在下一行继续; 分号“ ;”在方括号中,表示矩阵中行的结尾;用在每行的结尾,则 不显示该行运算的结果。,第2章 Matlab语言程序设计,所谓逻辑数据类型就是仅具有两个数值的一种数据类型,其中,一个数值为TRUE,另外一个数值为FALSE。在MATLAB中,参与逻辑运算或者关系运算的并不一定必须有逻辑类型的数据,任何数值都可以参与逻辑运算。这时,MATLAB将所有非零值看作逻辑真,将零值看作逻辑假。一般地,1表示逻辑真,0表示逻辑假。 和一般的数值类型类似,逻辑类型的数据只能通过数值类型转换,或者使用特殊的函数生成相应类型的数组或者矩阵。,第2章 Matlab语言程序设计,关于逻辑真假的规定:在所有的关系表达式和逻辑表达式中,输入的任何非 0 数都被看作是“ 逻辑真”,而只有 0 才被认为是“ 逻辑假”; 所有关系表达式和逻辑表达式的计算结果是一个由 0 和 1 组成的“ 逻辑矩阵( Logical Array)”。矩阵中的 1 表示“ 真”,0 表示“ 假”;逻辑矩阵是一种特殊的数值矩阵。与“ 数值类”有关的操作和函数对它也适用;但它又不同于普通的“ 数值”,它还表示对事物的判断结论“ 真”与“ 假” 。,第2章 Matlab语言程序设计,关系操作符,逻辑操作符,第2章 Matlab语言程序设计,MATLAB 的关系操作符运算法则: 当两个变量是标量 a 和 b 时 若 a、b 之间关系成立,则关系运算结果为 1; 若 a、b 之间关系不成立,则关系运算结果为 0; 当两个维数相同的矩阵 A 和 B 比较时,矩阵 A、B 比较的是相同位置的元素,按标量的运算规则逐个进行。关系运算的结果是一个和 A维数相同的矩阵,它的元素由 0 和 1 组成。 当一个矩阵A 和一个标量 b 比较时,把标量 b 和矩阵A 的每一个元素按标量关系运算规则逐个比较。关系运算的结果是一个和数组 A维数相同的矩阵,它是由 0 和 1 组成。 优先级 由高到低为算术运算、关系运算和逻辑运算。,第2章 Matlab语言程序设计,关系运算举例, 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 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章 Matlab语言程序设计,运算符的优先级 在M语言中可以将这些不同的运算符组合起来创建复杂的运算表达式。M语言的运算符和普通的高级编程语言类似,也具有相应的计算优先级。这里将M语言的运算以及相应的计算优先级进行了总结: (1) 括号( )。 (2) 数组转置(.),数组幂(.),复转置(),矩阵幂()。 (3) 一元加(+),一元减(?),逻辑非()。 (4) 数组乘法(.*),数组除法(./),数组左除(.),矩阵乘法(*),矩阵右除(/),矩阵左除()。 (5) 加法(+),减法(?)。,第2章 Matlab语言程序设计,(6) 冒号运算符(:)。(7) 小于(),大于等于(=),等于(= =),不等于(=)。(8) 元素与(&)。(9) 元素或(|)。(10) 短路逻辑与(&)。(11) 短路逻辑或(|)。,第2章 Matlab语言程序设计,上面的运算符优先级是由高到低排列的,例如括号运算符的优先级最高,数组转置等次之。如果同一级别的运算符出现在表达式中,则按照运算符在表达式中出现的次序,由左向右排列。在使用M语言编写程序时,需要灵活使用这些运算符来具体实现不同的算法。,第2章 Matlab语言程序设计,3、表达式及函数Matlab 采用的是表达式语言,用户输入的语句由 Matlab 系统解释运行。用户可以在 Matlab 的命令窗口中键入命令,也可以在编辑器内编写应用程序。 Matlab 语句由表达式和变量组成,有两种最常见的语句形式: 表达式 变量表达式, t=6t = 6 sin(5*t+6)ans = -0.9918 y=sin(5*t+6)y = -0.9918,第2章 Matlab语言程序设计,表达式由变量名、运算符、数字和函数名组成。表达式将按常规的优先纽从左至右执行运算;优先级的规定是指数运算级别最高,乘除运算次之;括号可以改变运算顺序;书写表达式时,赋值符“”和运算符两侧允许有空格,以增加可读性。但在复数或符号表达式中要尽量避免空格,以防出错;表达式的末尾加 “;” 时,Matlab系统只把数值赋给变量, 不显示计算结果;不加“;”时, Matlab 系统将会在该条语句的下面直接显示运算结果。,第2章 Matlab语言程序设计,Matlab 有十分丰富的函数资源,总共分为24类。常用有一下几类:一般函数命令(GENERAL);操作符与操作(OPERATOR);数据类型和结构(DATETYPE);基本矩阵和矩阵操作(ELMAT);基本数学函数(ELFUN);二维图(PLOTXY);图形句柄(GENGRAPH);三维图(3DGRAPH);语言和程序设计(LANGUAGE);文件输入输出函数(IOFUN);符号工具箱(SYNBOLIC)。,第2章 Matlab语言程序设计,上机练习(2)(1)创建一个表达式 ,并求当x=1,y=2时的z值(2)计算 其中 。(3)创建一个包含“ 她是我们班最好的学生”字符串。 (4)输入如下两个矩阵 A 和 B,对矩阵 A 和 B 作关系运算,标识出两矩阵中元素相等的位置,元素值不等的位置,并标识出矩阵 A 中所有小于 0 的元素。(5)对( 4)中的矩阵 A 和 B 作逻辑“ 或”、“ 与”运算,并标识出矩阵 B 中所有大于 2 并小于 5 的元素位置。, %数值计算例子 4+2ans = 6 2+4*i+3*exp(i*pi/6)ans = 4.5981 + 5.5000i 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, %冒号生成法 x=0:2:8x = 0 2 4 6 8 %直接输入法创建2维数组 c=1,2+3*i,abs(-4),sin(0.6);3,3i,sqrt(4),cos(0)c = 1.0000 2.0000 + 3.0000i 4.0000 0.5646 3.0000 0 + 3.0000i 2.0000 1.0000, %全下标元素赋值法创建一个(1*3*4)的高维数组 A(1,4,:)=1:3A(:,:,1) = 0 1 0 1A(:,:,2) = 0 2 0 2A(:,:,3) = 0 3 0 3, %标准数组生成函数 ones(1,4)ans = 1 1 1 1 randn(state,0) randn(2,3) %产生(2*3)的正态随机阵ans = -0.4326 0.1253 -1.1465 -1.6656 0.2877 1.1909, D=eye(3) %产生(3*3)的单位阵D = 1 0 0 0 1 0 0 0 1 diag(D) %取D阵的对角元素ans = 1 1 1 diag(diag(D) %内diag取D的对角元素,外diag利用一维数组生成对角阵ans = 1 0 0 0 1 0 0 0 1, %数组的寻访与赋值 x=rand(2,4) %利用rand产生一个(2*4)的随机数组x = 0.9501 0.6068 0.8913 0.4565 0.2311 0.4860 0.7621 0.0185 x(2)ans = 0.2311 x(3,4,7) %寻访数组x的第3,4,7个元素ans = 0.6068 0.4860 0.4565, x(find(x0.5) %寻访大于0.5的元素ans = 0.9501 0.6068 0.8913 0.7621 x(1:3) %寻访前3个元素组成的子数组ans = 0.9501 0.2311 0.6068 x(5:end) %寻访x数组的后4个元素,end是最后一个元素的下标ans = 0.8913 0.7621 0.4565 0.0185, x(1 2 3 3 1)ans = 0.9501 0.2311 0.6068 0.6068 0.9501 x(5)=0x = 0.9501 0.6068 0 0.4565 0.2311 0.4860 0.7621 0.0185 x(1 3)=2 2x = 2.0000 2.0000 0 0.4565 0.2311 0.4860 0.7621 0.0185, %逻辑运算 A=1&0A = 0 A=rand(1,10)A = Columns 1 through 6 0.9355 0.9169 0.4103 0.8936 0.0579 0.3529 Columns 7 through 10 0.8132 0.0099 0.1389 0.2028 R1=(A0.4)&(A R2=(A0.8)R2 = 1 1 0 1 1 1 1 1 1 1,第三章 基本的绘图方法,(1)掌握图形窗口的创建与控制,以及图形窗口的基本操作;(2)熟练掌握二维和三维绘图基本的命令、着色、线型控制;,第三章 基本的绘图方法,MATLAB提供了极为便利的数据可视化手段,可以作出任意函数的图像。以一个二维作图为例,作出函数y=e-x/10sinx在x-1,10范围的图像。x=-1:0.1:20; %定义x的范围和步进回车y=exp(-x./10).*sin(x); %计算函数值回车plot(x,y);grid; %作出函数图像,并在坐标上画出网格回车 结果如图3-1所示。注意,在程序语句中,以百分号“%”开始的是注释部分。关于“plot”的详细用法和例子可以用“doc plot”命令查看帮助文档。,第三章 基本的绘图方法,图3-1 函数y=e-x/10sinx在x-1,10范围的图像,第三章 基本的绘图方法,一、图形窗口创建图形窗口的命令为figure,有两种调用格式: figure/ figure(n)也可以由菜单创建: File-New-Figure,第三章 基本的绘图方法,二、二维平面图形与坐标系 a. 线性坐标曲线 plot 函数命令 plot 是 MATLAB 二维曲线绘图中最简单、最重要、使用最广泛的一个线性绘图函数。它可以生成线段、曲线和参数方程曲线的函数图形。 其基本指令形式有以下三种: plot(x1); plot(x2,y2); plot(x3,y3,x4,y4);其中,x1,x2,y2,x3,y3等符号均代表需要绘制的参数,他们可以是向量、矩阵、复数矩阵等,plot根据不同的参数绘制不同的图形。,第三章 基本的绘图方法,plot(x1)-输入一个数组的情况(单参数式),以x1中元素的下标作为X坐标,x1中元素的值作为Y坐标。例: x1=5 3 4 9 0 2 3; plot(x1) 图见3-2plot(x2,y2)输入两个数组情况(参数式)x2为横坐标向量,y2为纵坐标向量。例:x2=0:0.01:2*pi; y2=cos(x2); plot(x2,y2) 图见3-3,第三章 基本的绘图方法,图3-2 plot(x1),图3-3 plot(x2,y2),第三章 基本的绘图方法,用命令plot(Y)绘制矩阵 Y=5 4 3 8 9 10; 3 4 4 5 8 2; 8 12 13 21 18 25; 9 8 8 9 6 7的图形。Y=5 4 3 8 9 10; 3 4 4 5 8 2; 8 12 13 21 18 25; 9 8 8 9 6 7; plot(Y),图3-4,第三章 基本的绘图方法,plot(x1,y1,x2,y2

温馨提示

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

评论

0/150

提交评论