matlab_7[1]0_自学教程第一章.ppt_第1页
matlab_7[1]0_自学教程第一章.ppt_第2页
matlab_7[1]0_自学教程第一章.ppt_第3页
matlab_7[1]0_自学教程第一章.ppt_第4页
matlab_7[1]0_自学教程第一章.ppt_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

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

文档简介

1、16775D1,第1章MATLAB基础,1.1概述1.2MATLAB操作界面1.3Command Window运行1.4Command History窗1.5Current Directory、路径设置器和文件管理1.6Workspace Browser和Array Editor1.7M文件编辑器和脚本编写1.8使用MATLAB帮助,Matlab及其应用,2,1 课程内容简介,MATLAB基础 基于matlab的数值分析 绘制图形 符号计算 动态系统仿真:Simulink基础 与其它程序交互:转换为c、编译、实时控制 最优化方法,Matlab及其应用,3,2 Matlab的学习方法,必须做大量

2、的练习,熟悉其中的函数 联系和自己的课题相关,深刻的体会 多看帮助文件,又一本好的参考书 会提问题,寻求大家的帮助 记住:Matlab可以做很多事情,Matlab及其应用,4,学会Matlab将改变你的一生,网络对你的改变将远远的超过一台独立的计算机,Matlab及其应用,5,OK, Now begin,Matlab及其应用,6,MATLAB 基础及其应用,第一讲 MATLAB基础,概述 MATLAB基本使用 MATLAB的基本矩阵分析 矩阵操作 流程控制,Matlab及其应用,7,一、概述,MATLAB是一种交互式的以矩阵为基础的系统计算平台,它用于科学和工程的计算与可视化。它的优点在于快速

3、开发计算方法,而不在于计算速度。,Matlab及其应用,8,1.1 MATLAB的出现,70年代中期,Cleve Moler和他的同事开发了LINPACK和EISPACK的Fortran子程序库 70年代末期,Cleve Moler 在新墨西哥大学给学生开线性代数,为学生编写了接口程序,这程序取名为MATLAB,即MATrix LABoratory 1983年春天,工程师John Little与Moler、Steve Bangert一起开发了第二代专业版MATLAB 1984年,MathWorks公司成立,MATLAB正是推向市场。,Matlab及其应用,9,1.2 学习Matlab的基本原因

4、,不希望学生在编程上化太多时间,课程目的不是学习编程 社会化的运行带来的好处:合理利用可以节约大量的时间 为什么相同的时间别人比自己做出了更多的事情:硕士论文调查结果 面向对象的思想带来巨大的好处 紧密结合科学的前沿 From BBS:博士论文=Matlab+word,Matlab及其应用,10,1.3 Matlab的版本演化,Matlab 1.0 Pc matlab-matlab 386 Matlab3.5+simulink Matlab 4.0:simlink内嵌 Matlab 5.0 :全面的面向对象 Matlab 5.15.3 Matlab 6.0 Matlab 6.5:购并了MATR

5、IXx Matlab 7.0:2004,Matlab及其应用,11,1.4 MATLAB特点,高度适应性、开放性:MATLAB的工具箱可以任意增减,任何人可以自己生成MATLAB工具箱 可扩充性: MATLAB的函数大多为ASCII文件,可以直接编辑、修改 基于矩阵运算的工作平台。多版本:windows/unix/dos/Macintosh 极多的工具箱。,Matlab及其应用,12,1.5 Matlab能做什么,基本的数据处理 优化和解方程 动态过程仿真:实时的和非实时的 数据来源:Excel、数据库、A/D等等 嵌入式的控制:Pc/104和DSP 神经元网络、小波分析、GA等等 虚拟现实仿

6、真,Matlab及其应用,13,Matlab产品家族,Matlab扩展支持在matlab中队系统的实施和开发。 工具箱:专用的函数库,解决特定领域的问题。 Simulink非线性系统仿真 Blockset是专门为simulink建立的模块。,Matlab及其应用,14,Matlab是所有系统工具的基础,Matlab及其应用,15,设计自动化工具,Matlab及其应用,16,一般用途工具,Matlab及其应用,17,信号和图像处理,Matlab及其应用,18,控制系统设计和分析,Matlab及其应用,19,1.6 网络资源,USENET新闻组 MATLAB的新闻组是comp.soft-sys.M

7、ATLAB。浏览器指向 网络上的工具箱 ,Matlab及其应用,20,1.6 网络资源(2),BBS 哈尔滨工业大学bbs: telnet:/ 上海交通大学bbs: telnet:/ 清华大学bbs mathtools www服务 Matlab 大观园: http:/www.matlab-,Matlab及其应用,21,1.7 与MATLAB相似的软件,Mathmatica 数学计算功能。复杂符号计算,主要在理论界 Mathcad 数学文字软件。直接写出报告 Maple 符号计算功能强大 SciLab 免费的matlab科隆体 仿真软件:MATRIXx、VisSim等等,Matlab及其应用,2

8、2,二、MATLAB基础使用,2.1 MATLAB安装启动 Matlab的安装 定制安装 关于Java的问题:XP系统必须安装虚拟机 安装pdf文件 Matlab启动 自动批处理 startup.m matlabrc.m,Matlab及其应用,23,2.2 Matlab菜单的含义,多窗口界面 Matlab的设置 快速启动 版本控制 图形粘贴设置 字体的改变,Matlab及其应用,24,2.3帮助的使用,help 命令:已知命令不知道用法 lookfor命令:知道命令的关键词 Matlab Help:命令查找,索引,说明书 Demo 有效的利用帮助,Matlab及其应用,25,2.3.1 怎样获

9、得详尽的帮助信息,首先是MATLAB窗口中的help命令,它最常用、最快,往往也是最有效的。给出关键字就能找到相应的说明。Help命令简单易用,但是它要求准确给出关键字,如果记忆不准,就很难找到。这时就应该用第二种方案。 Help Desk:这是MATLAB的HTML格式的帮助文档,有着很好的组织。可以在命令行键入helpdesk,进入“Matlab Help Desk”。Help Desk的搜索可以使用不完全关键字,这样即使遇到记忆模糊的情况也可以很快查到。 前面两种方法所得到的帮助信息常常是不够细致的,需要用第三种途径来补充,这就是电子版的使用手册。MATLAB里包含了大量关于MATLAB

10、安装、使用、编程以及各种工具箱等的电子版手册,全部为PDF格式,具有搜索功能,因此也可以在指定的手册中搜索关键字,使用非常方便。,Matlab及其应用,26,2.4 Matlab变量,基本运算 变量 逗号、分号的意义 行内编辑、注释、运算规则 变量要求 变量区分字母的大小写 名字不能超过19个字符,第19个字符后的字符被忽略 变量必须以字母开头,之后可以是任意字母、数字或者下滑线 变量中不能含有标点符号。,Matlab及其应用,27,2.4.1 特殊变量,Matlab及其应用,28,2.4.2 复数,不需要特殊的处理。复数可以表示为:a=10-9i 复数运算不需要特殊处理,可以直接进行,Mat

11、lab及其应用,29,2.4.3 显示格式,MATLAB中所有的量为双字长浮点数,显示按下面显示规则: 在缺省情况下,当结果为整数,作为整数显示;当结果为实数,以小数后4位的精度近似显示。 如果结果中的有效数字超出了这一范围,以科学计数法显示结果。 format命令改变显示格式,常用的的格式有 long (16位) bank(2个十进制位) hex(十六进制) short(缺省) short e(5位加指数) +(符号) long e(16位加指数) rat(有理数近似),Matlab及其应用,30,2.5 文件管理功能,who(whos) cd(chdir,pwd) dir(ls) type

12、 what which clc,edit ! echo load clear/pack save diary,Matlab及其应用,31,三、MATLAB的基本矩阵运算,3.1 简单矩阵输入 命令行简单键盘输入 用于很少数据输入 矩阵的方向:, ; NaN Inf 文件形式输入 可以用来读入试验数据 大量的数据输入 load数据 文本文件:全部是数据,不含有数据 mat文件:matlab自有的数据格式,Matlab及其应用,32,2语句生成矩阵,线性等间距格式矩阵,使用from:step:to linspace命令 a=linspace(1,10,5); logspace命令 b=logspa

13、ce(0,2,10) 矩阵连接 c=a b; zeros ones eye randn ,Matlab及其应用,33,3. 引入特殊的文件格式,引入输入:import wizard 可以引入的文件格式: 文本文件: .txt .dat 图片文件: .gif .bmp .jpg .avi 声音:.wav .au 电子表格:.csv .xls .wk1,Matlab及其应用,34,直接读入特殊格式文件:文本类型,Matlab及其应用,35,直接读入特殊格式文件:二进格式,Matlab及其应用,36,3.2 矩阵运算,矩阵的转置 用符号来表示和实现 非共轭转置 . 矩阵的四则运算 +-*/ 点乘:.

14、* 右除:./ 左除:. 矩阵的乘方 矩阵乘方 .元素对元素的乘方 矩阵的范数 norm 1-范数 2-范数 无穷范数 条件数 cond,Matlab及其应用,37,3.3 矩阵的超越函数,MATLAB中exp、sprt、sin、cos等命令可以直接使用在矩阵上,这种运算只是定义在矩阵的单个元素上,即分别对矩阵的每个元素进行运算。MATLAB中也提供了基本的三角函数。 注意其中的取整,Matlab及其应用,38,3.3 矩阵的超越函数,Matlab及其应用,39,3.4 关系和逻辑运算,1 关系操作符 MATLAB常用的关系操作符有:(大于)、=(大于或等于)、 = =(等于)、 !=(不等于

15、)。 MATLAB的关系操作符可以用来比较两个大小相同的数组,或者比较一个数组和一个标量。在与标量比较时,结果和数组大小一样。 a=1:9; b=a4 b = 0 0 0 0 1 1 1 1 1 c=a(a4) c = 5 6 7 8 9,Matlab及其应用,40,2 逻辑操作符,逻辑操作符定义了一种与或非的关系表达式。MATLAB的逻辑操作符有 find(a15) ans = 7 8 9 10 11 矩阵的排序使用sort函数,它将矩阵按照升序排列。,Matlab及其应用,47,5矩阵的查找和排序,子矩阵的查找使用find命令完成,它返回关系表达式为真的下标。 矩阵的排序使用sort函数,

16、它将矩阵按照升序排列。 应用: 去奇异点:a(find(astd(a)*3) 嵌入数据:在指定大小的数据后加入数据 替换:替换指定大小的数据段,Matlab及其应用,48,6 字符串处理,MATLAB 真正强有力的地方在于它的数值处理能力。然而,经常希望操作文本,例如把标号和标题放在图上。在MATLAB 里,文本当作特征字符串或简单地当作字符串。 字符串内的单引号是由两个连续的单引号来表示。 字符串连接可以直接从数组连接中得到。,Matlab及其应用,49,字符串函数,eval(string) 作为一个MATLAB 命令求字符串的值 eval(try,catch) blanks(n) 返回一个

17、n 个零或空格的字符串 deblank 去掉字符串中后拖的空格 feval 求由字符串给定的函数值 findstr 从一个字符串内找出字符串 isletter 字母存在时返回真值 isspace 空格字符存在时返回真值 isstr 输入是一个字符串,返回真值 lasterr 返回上一个所产生MATLAB 错误的字符串 strcmp 字符串相同,返回真值 strrep 用一个字符串替换另一个字符串 strtok 在一个字符串里找出第一个标记,Matlab及其应用,50,类型转换,char x=77 65 84 76 65 66; char(x) int2str 四舍五入为整数转换为字符串 num

18、2str 将数字转换为字符串 mat2str 将矩阵的数据转换为字符串 str2num,Matlab及其应用,51,7 单元结构,单元结构:cell 把不同属性的数据纳入一个变量中 类似于具有下标的矩阵和多维数组,但这些下标不是用圆括号,而是用大括号括起来的。 pp=cellstr(asd testetet sfsdfsdfdfgsdgsg sfdfgfdfgf) 显示内容:pp(1)和pp1的区别 清空一个单元数据:pp(3)= 和pp3=的区别,Matlab及其应用,52,8 结构体,结构体将某一类相关的信息纳入一个统一的变量名字管理。 先建立一个结构体:a.b=1 构建一个结构体的数组:

19、pp(m,n)=struct(a) 删除一个变量:pp=rmfield(pp,b),Matlab及其应用,53,四、脚本,对于简单问题,使用直接输入命令简单有效;对稍复杂和多次重复的应用,直接输入命令比较麻烦。MATLAB提供了逻辑解决方案,它允许用户把多个命令放在一个简单的文本文件中,如同在MATLAB中键入命令一般,这种文件称为脚本文件,由于脚本文件以m为扩展名,它常称为M文件。脚本文件为文本形式的,对跨平台处理十分有利。 使用脚本文件,可以把命令保存在磁盘上,便于以后的访问;同时对使用大的数组也带来的方便;增加注释可以为脚本中的命令作文挡以免以后忘记。,Matlab及其应用,54,4.1

20、 流程控制,为了便于应用,MATLAB提供了一些流程控制的命令。这些命令对脚本编写带来了一些方便,但是需要注意的是,尽量不要使用这些流程控制命令,尤其是循环控制命令。 1 for循环 for循环允许一组命令以固定的次数重复,它的一般形式是 for x=array command end for 和end之间的命令串按数组array的每一列执行一次,直到n次后终止。,Matlab及其应用,55,For循环应当注意的一些方面,for循环不能使用内部重新赋值循环变量而终止; for循环内部接受任何有效的MATLAB数组; for循环可以嵌套; 只要有矩阵形式可以解决的问题,不要使用for循环。使用f

21、or循环的算法执行很慢,一个好的MATLAB算法部应当出现循环语句。Tic/toc 循环可以使用break跳出,但只跳出所在的循环,不跳出整个嵌套结构。,Matlab及其应用,56,2while循环,与for循环以固定的次数求一组指令相反,while循环以不定的次数求一组语句的值。While循环的一般形式为: while expression commonds end 只要表达式expression里的所有元素为真,就执行命令串commands。通常表达式求值给一个标量值,单数组值也同样有效。,Matlab及其应用,57,3 if-else-enf结构,很多情况下,命令的序列必须根据关系的检验

22、有条件的执行,它由if-else-end结构提供。它的结构如下: if expression1 commands1 elseif expression2 commands2 elseif else commands end,Matlab及其应用,58,If- Then- Else,在执行过程中,MATLAB依次检查各个表达式,只执行第一个表达式为真的命令串,接下来的关系表达式不检验,跳过其余的if-else-end结构,而且,最后的else命令可有可无。,Matlab及其应用,59,try-catch结构,可以进行错误的处理,提高计算的可靠性 try 可能出错的语句 catch 错误处理 en

23、d,Matlab及其应用,60,4.2 函数,把一个比较大的任务分解为多个比较小的任务,它们之间通过调用实现参数传递,小任务可以是函数。 1 函数调用 常见的函数调用形式为: out1,out2,=function(in1,in2,) 一个函数可以嵌套,也可以调用其它的函数,甚至调用自己(也就是递归调用)。 函数文件,函数名称和文件名必须相同。,Matlab及其应用,61,函数,需要注意函数文件的放置位置,一般自己的函数文件放在当前目录;如果对一个专题有了足够多的函数,可以生成一个工具箱,放在一个固定的目录下,并在MATLAB中加入这个目录路径即可。 使用函数可以加快计算速度。MATLAB首次

24、执行一个函数时,它将打开的文件编译为存储器内部形式,加速了执行速度。普通的m文件不被编译,在每次编译时,文件将逐行解释执行。 函数的前一部分注释为帮助行,在使用help命令是看到的为这些注释行。,Matlab及其应用,62,2 参数传递,MATLAB函数的输入输出数目都可以变化,通过这个特性,可以实现一些自定义的功能。函数的输入输出参数数目可以通过变量nargin和nargout获得。函数调用中可以使用少于规定的输入输出参数数目,但是不能更多。 在MATLAB中,参数具有自己的专有工作空间。函数中的参数和命令行参数不在一个空间中,它们的唯一联系为函数的输入输出变量。输入参数在函数中是可读的,但

25、任何改动不会传递回上一级空间。 使用global命令可以将变量说明为全局的,则在函数、命令行等都可以共享这些变量。在实际应用中,应当尽量避免使用全局变量。,Matlab及其应用,63,3 函数注意,函数可以按少于函数M 文件中所规定的输入和输出变量进行调用,但不能用多于函数M 文件中所规定的输入和输出变量数目。如果输入和输出变量数目多于函数M 文件中function 语句一开始所规定的数目,则调用时自动返回一个错误。 当调用一个函数时,所用的输入和输出的参量的数目,在函数内是规定好的。函数工作空间变量nargin 包含输入参量个数;函数工作空间变量nargout 包含输出参量个数。事实上,这些

26、变量常用来设置缺省输入变量,并决定用户所希望的输出变量。在M 文件函数里,变量nargout 可用来检验输出参量的个数,并按要求修正输出变量的创建。,Matlab及其应用,64,3 函数注意,函数有它们自己的专用工作空间,它与MATLAB 的工作空间分开。函数内变量与MATLAB 工作空间之间唯一的联系是函数的输入和输出变量。如果函数任一输入变量值发生变化,其变化仅在函数内出现,不影响MATLAB 工作空间的变量。函数内所创建的变量只驻留在函数的工作空间,而且只在函数执行期间临时存在,以后就消失。因此,从一个调用到下一个调用,在函数工作空间变量存储信息是不可能的。,Matlab及其应用,65,

27、3 函数注意,当调用一个函数时,输入变量不会拷贝到函数的工作空间,但使它们的值在函数内可读。然而,改变输入变量内的任何值,那么数组就拷贝到函数工作空间。进而,按缺省,如果输出变量与输入变量相同,例如,函数x=fun(x, y, z) 中的x ,那么就将它拷贝到函数的工作空间。因此,为了节约存储和增加速度,最好是从大数组中抽取元素,然后对它们作修正,而不是使整个数组拷贝到函数的工作空间。,Matlab及其应用,66,3 函数注意,如果变量说明是全局的,函数可以与其它函数、MATLAB 工作空间和递归调用本身共享变量。为了在函数内或MATLAB 工作空间中访问全局变量,在每一个所希望的工作空间,变

28、量必须说明是全局的。 实际编程中,无论什么时候应尽量避免使用全局变量。要是用了全局变量,建议全局变量名要长,它包含所有的大写字母,并有选择地以首次出现的M 文件的名字开头。如果遵循建议,则在全局变量之间不必要的互作用减至最小。,Matlab及其应用,67,3 函数注意,MATLAB 以搜寻脚本文件的同样方式搜寻函数M 文件。例如,输入 cow ,MATLAB 首先认为cow 是一个变量。如果它不是,那么MATLAB 认为它是一个内置函数。如果还不是,MATLAB 检查当前cow.m 的目录或文件夹。如果它不存在,MATLAB 就检查cow.m 在MATLAB 搜寻路径上的所有目录或文件夹。 从函数M 文件内可以调用脚本文件。在这种情况下,脚本文件查看函数工作空间,不查看MATLAB 工作空间

温馨提示

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

评论

0/150

提交评论