1 / 73

Matlab 及其应用

Matlab 及其应用. 1 课程内容简介. MATLAB 基础 基于 matlab 的数值分析 绘制图形 符号计算 动态系统仿真: Simulink 基础 与其它程序交互 : 转换为 c 、编译、实时控制 最优化方法. 2 Matlab 的学习方法. 必须做大量的练习,熟悉其中的函数 联系和自己的课题相关,深刻的体会 多看帮助文件,又一本好的参考书 会提问题,寻求大家的帮助 记住: Matlab 可以做很多事情. 学会 Matlab 将改变你的一生. 网络对你的改变将远远的超过一台独立的计算机. OK, Now begin …….

yale
Download Presentation

Matlab 及其应用

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Matlab及其应用

  2. 1 课程内容简介 • MATLAB基础 • 基于matlab的数值分析 • 绘制图形 • 符号计算 • 动态系统仿真:Simulink基础 • 与其它程序交互:转换为c、编译、实时控制 • 最优化方法

  3. 2 Matlab的学习方法 • 必须做大量的练习,熟悉其中的函数 • 联系和自己的课题相关,深刻的体会 • 多看帮助文件,又一本好的参考书 • 会提问题,寻求大家的帮助 • 记住:Matlab可以做很多事情

  4. 学会Matlab将改变你的一生 网络对你的改变将远远的超过一台独立的计算机

  5. OK, Now begin……

  6. 哈尔滨工业大学动力工程控制与仿真研究所 baowen@turbo.hit.edu.cn MATLAB 基础及其应用 • 概述 • MATLAB基本使用 • MATLAB的基本矩阵分析 • 矩阵操作 • 流程控制 > 第一讲 MATLAB基础 > > > >

  7. 一、概述 • 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正是推向市场。

  9. 1.2 学习Matlab的基本原因 • 不希望学生在编程上化太多时间,课程目的不是学习编程 • 社会化的运行带来的好处:合理利用可以节约大量的时间 • 为什么相同的时间别人比自己做出了更多的事情:硕士论文调查结果 • 面向对象的思想带来巨大的好处 • 紧密结合科学的前沿 • From BBS:博士论文=Matlab+word

  10. 1.3 Matlab的版本演化 • Matlab 1.0 • Pc matlab->matlab 386 • Matlab3.5+simulink • Matlab 4.0:simlink内嵌 • Matlab 5.0 :全面的面向对象 • Matlab 5.1~5.3 • Matlab 6.0 • Matlab 6.5:购并了MATRIXx • Matlab 7.0:2004

  11. 1.4 MATLAB特点 • 高度适应性、开放性:MATLAB的工具箱可以任意增减,任何人可以自己生成MATLAB工具箱 • 可扩充性: MATLAB的函数大多为ASCII文件,可以直接编辑、修改 • 基于矩阵运算的工作平台。多版本:windows/unix/dos/Macintosh • 极多的工具箱。

  12. 1.5 Matlab能做什么 • 基本的数据处理 • 优化和解方程 • 动态过程仿真:实时的和非实时的 • 数据来源:Excel、数据库、A/D等等 • 嵌入式的控制:Pc/104和DSP • 神经元网络、小波分析、GA等等 • 虚拟现实仿真

  13. Matlab产品家族 • Matlab扩展支持在matlab中队系统的实施和开发。 • 工具箱:专用的函数库,解决特定领域的问题。 • Simulink非线性系统仿真 • Blockset是专门为simulink建立的模块。

  14. Matlab是所有系统工具的基础

  15. 设计自动化工具

  16. 一般用途工具

  17. 信号和图像处理

  18. 控制系统设计和分析

  19. 1.6 网络资源 • USENET新闻组 • MATLAB的新闻组是comp.soft-sys.MATLAB。浏览器指向 • http://www.dejanews.com • http://www.google.com • 网络上的工具箱 • http://www.mathtools.com/ • http://www.mathworks.com/matlabcentral/fileexchange/loadCategory.do

  20. 1.7 与MATLAB相似的软件 • Mathmatica 数学计算功能。复杂符号计算,主要在理论界 • Mathcad 数学文字软件。直接写出报告 • Maple 符号计算功能强大 • SciLab 免费的matlab科隆体 • 仿真软件:MATRIXx、VisSim等等

  21. 二、MATLAB基础使用 2.1 MATLAB安装启动 • Matlab的安装 • 定制安装 • 关于Java的问题:XP系统必须安装虚拟机 • 安装pdf文件 • Matlab启动 • 自动批处理 startup.m matlabrc.m

  22. 2.2 Matlab菜单的含义 • 多窗口界面 • Matlab的设置 • 快速启动 • 版本控制 • 图形粘贴设置 • 字体的改变

  23. 2.3帮助的使用 • help 命令:已知命令不知道用法 • lookfor命令:知道命令的关键词 • Matlab Help:命令查找,索引,说明书 • Demo • 有效的利用帮助

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

  25. 2.4 Matlab变量 • 基本运算 • 变量 • 逗号、分号的意义 • 行内编辑、注释、运算规则 • 变量要求 • 变量区分字母的大小写 • 名字不能超过19个字符,第19个字符后的字符被忽略 • 变量必须以字母开头,之后可以是任意字母、数字或者下滑线 • 变量中不能含有标点符号。

  26. 2.4.1 特殊变量

  27. 2.4.2 复数 • 不需要特殊的处理。复数可以表示为:a=10-9i • 复数运算不需要特殊处理,可以直接进行

  28. 2.4.3 显示格式 • MATLAB中所有的量为双字长浮点数,显示按下面显示规则: • 在缺省情况下,当结果为整数,作为整数显示;当结果为实数,以小数后4位的精度近似显示。 • 如果结果中的有效数字超出了这一范围,以科学计数法显示结果。 • format命令改变显示格式,常用的的格式有 • long (16位) bank(2个十进制位) hex(十六进制) • short(缺省) short e(5位加指数) +(符号) • long e(16位加指数) rat(有理数近似)

  29. who(whos) cd(chdir,pwd) dir(ls) type what which clc edit ! echo load clear/pack save diary 2.5 文件管理功能

  30. 三、MATLAB的基本矩阵运算 3.1 简单矩阵输入 • 命令行简单键盘输入 • 用于很少数据输入 • 矩阵的方向:, ; NaN Inf • 文件形式输入 • 可以用来读入试验数据 • 大量的数据输入 • load数据 • 文本文件:全部是数据,不含有数据 • mat文件:matlab自有的数据格式

  31. 2语句生成矩阵 • 线性等间距格式矩阵,使用from:step:to • linspace命令 • a=linspace(1,10,5); • logspace命令 • b=logspace(0,2,10) • 矩阵连接 • c=[a b]; • zeros ones eye randn []

  32. 3. 引入特殊的文件格式 • 引入输入:import wizard • 可以引入的文件格式: • 文本文件: .txt .dat • 图片文件: .gif .bmp .jpg .avi • 声音:.wav .au • 电子表格:.csv .xls .wk1

  33. 直接读入特殊格式文件:文本类型

  34. 直接读入特殊格式文件:二进格式

  35. 3.2 矩阵运算 • 矩阵的转置 • 用符号’来表示和实现 • 非共轭转置 .’ • 矩阵的四则运算 • +-*/ \ • 点乘:.* 右除:./ 左除:.\ • 矩阵的乘方 • ^矩阵乘方 • .^元素对元素的乘方 • 矩阵的范数 • norm 1-范数 2-范数 –无穷范数 • 条件数 cond

  36. 3.3 矩阵的超越函数 • MATLAB中exp、sprt、sin、cos等命令可以直接使用在矩阵上,这种运算只是定义在矩阵的单个元素上,即分别对矩阵的每个元素进行运算。MATLAB中也提供了基本的三角函数。 • 注意其中的取整

  37. 3.3 矩阵的超越函数

  38. 3.4 关系和逻辑运算 1 关系操作符 • MATLAB常用的关系操作符有:<(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)、 = =(等于)、 !=(不等于)。 • MATLAB的关系操作符可以用来比较两个大小相同的数组,或者比较一个数组和一个标量。在与标量比较时,结果和数组大小一样。 • »a=1:9; • b=a>4 • b = • 0 0 0 0 1 1 1 1 1 • »c=a(a>4) • c = • 5 6 7 8 9

  39. 2 逻辑操作符 • 逻辑操作符定义了一种与或非的关系表达式。MATLAB的逻辑操作符有&(与)、|(或)、~(非)。例如: • »c=~(a>4) • c = • 1 1 1 1 0 0 0 0 0 • »c=(a>4)&(a<7) • c = • 0 0 0 0 1 1 0 0 0

  40. 四、矩阵操作 4.1 矩阵下标 • MATLAB通过确认下标,可以对矩阵进行插入子块、提取子块和重排子块的操作。 • 为了提取矩阵a的第n行、第m列的元素值,使用a(n,m)可以得到。同样,将矩阵a的第n行、第m列的元素值赋为r,使用a(n,m)=r这样的命令。需要注意的是,如果在提取矩阵值时,行或列的值大于矩阵的大小,则出错;而在矩阵赋值时,如果行或者列超出矩阵的大小,则MATLAB自动扩充矩阵的规模,使得可以赋值,扩充部分以零填充。

  41. 4.1 矩阵下标 • 利用矩阵下标,MATLAB还提供了子矩阵功能。同样是上面的a(n,m),如果n和m是向量,而不是标量,则将获得指定矩阵的子块. • 同样,矩阵的子块还可以被赋值。如果在取子块时,n或m是“:”,则返回指定的所有行或列。 • 如果在矩阵子块赋值为空矩阵(用[]表示),则相当于消除相应的矩阵子块. • 矩阵的序号编址:按列计数。

  42. 4.2矩阵大小 • 在MATLAB命令行中,使用whos命令可以察看到所有变量的大小。 • 为了获得矩阵或者向量的大小,MATLAB还提供了两个有用的函数size和length。 • size按照下面的形式使用:[m,n]=size(a,x)。一般的,函数的输入参量x不是用,这是当只有一个输出变量时,size返回一个行向量,第一个数为行数,第二个数为列数;如果有两个输出变量,第一个返回量为行数,第二个返回数为列数。当使用x时,x=1返回行数,x=2返回列数,这时只有一个返回值。 • length返回行数或者列数的最大值,即length(a)=max(size(a))。

  43. 4.3 矩阵操作函数 • MATLAB提供了一组执行矩阵操作的函数,例如flipud(a)使得矩阵上下翻转,fliplr(a)使得矩阵左右翻转,rot90(a)使得矩阵逆时针翻转900等等。

  44. 4.4逻辑矩阵 • 逻辑矩阵是大小和对应矩阵相同,而元素为0或者1的数组。逻辑数组一般由关系算子创建。可以使用逻辑矩阵来取得矩阵的部分元素值, • 得到矩阵中所有大于3的值。使用逻辑矩阵也可以对矩阵的部分赋值。

  45. 4.5 矩阵查找和排序 • 子矩阵的查找使用find命令完成,它返回关系表达式为真的下标。例如: • »a=10:20; • »find(a>15) • ans = • 7 8 9 10 11 • 矩阵的排序使用sort函数,它将矩阵按照升序排列。

  46. 5矩阵的查找和排序 • 子矩阵的查找使用find命令完成,它返回关系表达式为真的下标。 • 矩阵的排序使用sort函数,它将矩阵按照升序排列。 • 应用: • 去奇异点:a(find(a<std(a)*3)) • 嵌入数据:在指定大小的数据后加入数据 • 替换:替换指定大小的数据段

  47. 6 字符串处理 • MATLAB 真正强有力的地方在于它的数值处理能力。然而,经常希望操作文本,例如把标号和标题放在图上。在MATLAB 里,文本当作特征字符串或简单地当作字符串。 • 字符串内的单引号是由两个连续的单引号来表示。 • 字符串连接可以直接从数组连接中得到。

  48. 字符串函数 • eval(string) 作为一个MATLAB 命令求字符串的值 • eval(try,catch) • blanks(n) 返回一个n 个零或空格的字符串 • deblank 去掉字符串中后拖的空格 • feval 求由字符串给定的函数值 • findstr 从一个字符串内找出字符串 • isletter 字母存在时返回真值 • isspace 空格字符存在时返回真值 • isstr 输入是一个字符串,返回真值 • lasterr 返回上一个所产生MATLAB 错误的字符串 • strcmp 字符串相同,返回真值 • strrep 用一个字符串替换另一个字符串 • strtok 在一个字符串里找出第一个标记

  49. 类型转换 • char x=[77 65 84 76 65 66]; char(x) • int2str 四舍五入为整数转换为字符串 • num2str 将数字转换为字符串 • mat2str 将矩阵的数据转换为字符串 • str2num

  50. 7 单元结构 • 单元结构:cell • 把不同属性的数据纳入一个变量中 • 类似于具有下标的矩阵和多维数组,但这些下标不是用圆括号,而是用大括号括起来的。 • pp=cellstr({'asd' 'testetet' 'sfsdfsdfdfgsdgsg' 'sfdfgfdfgf'}) • 显示内容:pp(1)和pp{1}的区别 • 清空一个单元数据:pp(3)=[] 和pp{3}=[]的区别

More Related