1 / 127

MATLAB 入门与应用

MATLAB 入门与应用. 光电信息实验教学示范中心. 常见的数学工具软件. 在科学研究和工程设计中,数据分析、处理和图形绘制是不可避免的,有时还需要进行数学建模,实时控制和动态仿真等,如果用户直接用 C (C++, Visual C )、 Delphi 、 Java 、 Basic 、 Fortran 或等计算机语言高级来完成是非常不方便的。为此,有关计算机公司开发了许多软件来帮助用户提高效率。常见的相关软件有:. Mathematica Mathcad Maple Oringin Matlab. 1.1 认识 MATLAB.

donald
Télécharger la présentation

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. 常见的数学工具软件 在科学研究和工程设计中,数据分析、处理和图形绘制是不可避免的,有时还需要进行数学建模,实时控制和动态仿真等,如果用户直接用C (C++, Visual C)、Delphi 、 Java、Basic、Fortran或等计算机语言高级来完成是非常不方便的。为此,有关计算机公司开发了许多软件来帮助用户提高效率。常见的相关软件有: • Mathematica • Mathcad • Maple • Oringin • Matlab

  3. 1.1 认识MATLAB • 1.1.1 MATLAB的历史 • 1.1.2 MATLAB的构成 • MATLAB的语言 • MATLAB的工作环境 • MATLAB的工具箱 • 1.1.3 MATLAB的特点

  4. 1.1.1 MATLAB的历史 MATLAB:英语Matrix(矩阵)和Laboratory(实 验室)两个单词前三个字母的组合 • 70年代:美国新墨西哥大学为矩阵运算软件包编写的接 • 口程序,是教学辅助软件 • 80年代初:出现第二版 ,具有数值计算、图示化功能 • 84年:Math Works公司成立,成为集数值计算、图形处 • 理等多功能数学应用商业化软件 • 89年: 发布基于Windows3.1版本:MATLAB for • WINDOWS • 93年: 推出MATLAB4.0 真正视窗环境功能加强 • 97年: 推出MATLAB5.X • 2001年:推出MATLAB6.X • 2004年:推出MATLAB7.X • ……

  5. 1.1.2 MATLAB的构成 • MATLAB 7.0的语言 • MATLAB7.0的工作环境 • MATLAB7.0的工具箱 • MATLAB7.0的API(应用程序编程接口)

  6. MATLAB的语言 • 以向量、矩阵为基本的数据单元 • 有顺序、选择、循环等结构控制语句 • 有大量运算符 • 可以编写结构化、有面向对象特点的程序

  7. MATLAB7.0的工作环境 • 命令控制窗口 • 图形处理窗口 • 程序编辑器 • 大量的M文件

  8. MATLAB7.0工具箱(Toolboxes) • 信号处理(Signal Processing) • 控制系统(Control System) • 神经网络(Neural Networks) • 图象处理(Image Processing) • 模糊逻辑(Fuzzy Logic) • 小波(Wavelets) • 仿真(Simulink)

  9. 1.1.3 MATLAB7.0的特点 以矩阵作为数据操作的基本单位,语言灵活,功能强大 • 数值运算全面——数学、统计、科学运算 • 表示方法简单——方法自然,可以与Microsoft Word结合 • 丰富的工具箱

  10. 1.2 视窗下MATLAB的环境 • 1.2.1 MATLAB的命令控制窗口 • 1.2.2 MATLAB的数据显示格式 • 1.2.3 MATLAB的程序编辑器 • 1.2.4 MATLAB的变量浏览器 • 1.2.5 MATLAB的路径浏览器

  11. MATLAB的数据显示格式

  12. 1.3 初试MATLAB • 1.3.1 基本数学运算 • 1.3.2 变量 • 1.3.3 数学函数初步 • 1.3.4 复数初步

  13. Ex.2 1.3.1 基本数学运算 例1:1+2+2^3 例2:硬盘5个,每个1100¥,CPU5个,每个1700¥,共计多少元?

  14. 1.3.2 变量 • 变量命名规则:1.变量名可以由任意的字母、数字或下划线组成,但必须以字母打头;2.变量名区分字母大小写;3.变量名最多不超过19个字符,第19个字符之后的字符将被忽略。 例如:x , x1 , x1y1 , cpu_number , average ,X23 ,是合法的变量; 而:1x , x#y , x:y , cpu-number , 动量p,就不是合法的变量名; 注意:x12≠X12 ,他们是两个不同的变量。

  15. MATLAB的特殊变量 MATLAB有一些系统自己定义的变量,称为特殊变量 eps=2.2204e-0160 ; 防止分母为0 realmin=2.2251e-308

  16. 1.3.3 数学函数初步——常用数学函数 已知a=π/4,b=300,计算sin(a)和tg(b)

  17. 1.3.4 复数初步——复数运算 • MATLAB对复数运算的特点是,不必对复数作特殊处理,与一般的实数计算完全一样。 • 复数运算的结果还是表示为复数,即使结果是实数,MATLAB还是保留零虚数。 • 复数直角坐标形式 a+bi ,与极坐标形式 M∠θ 之间可以转换。 Ex.4已知 a=1-i ,b=1-i ,计算: x=a+b ;y=(a+b)2;给出x的实部与虚部 ;将 x 化为极坐标形式。

  18. 1.4 MATLAB的基本操作 • 1.4.1 MATLAB启动和工作空间 • 1.4.2 数据的存储和读取 • 1.4.3 命令窗口控制 • 1.4.4 文件的编写与管理 • 1.4.5 如何获得在线帮助

  19. 1.4.1 启动与工作空间 • MATLAB启动时将执行两个脚本文件:matlabrc.m和startup.m。其中matlabrc.m是系统自带的,用来设置图形窗口的缺省项,一般不需由用户改变。 startup.m由用户自己编辑生成,作为MATLAB启动时的设置。 • 工作空间:MATLAB启动后通过命令窗口与用户交互,在命令窗口输入的命令、变量,将保存在工作空间内,可以随时调用。查看工作空间中变量有以下方法: • (1)直接在命令窗口中键入变量名; • (2)用who或 whos 命令列出空间中的变量或变量名; • (3)从File菜单,弹出变量浏览器Workspace Browser。 只返回空间中的变量名 返回空间中的变量名、大小和类型

  20. 1.4.2 数据的存储与读取 数据的存储: (1)保存整个工作空间:1.用File菜单中的Save workspace as菜单项;2.在命令窗口键入 save worksp2(工作空间的所有变量存在文件worksp2中)3.在命令窗口键入 save worksp2 -ascii(工作空间的所有变量以8位ASCⅡ格式存在文件worksp2中) (2)保存个别变量:在命令窗口键入如下命令: 命令格式:Save文件名 变量名1 变量名2 … 存储格式 例:save date3 x y a -ascii -double 表示:将当前工作空间中的x、y和a三个变量以16位ASCⅡ格式保存到文件data3中。 (3)以上文件的扩展名为 . mat

  21. 数据的存储与读取 数据的读取:用save保存的数据可以用load载入(读取) (1)打开保存过的整个工作空间:1. 用File菜单中的load workspace as菜单项;2. 在命令窗口键入 load worksp2(读出存在文件worksp2中的工作空间) (2)打开保存过的个别变量:在命令窗口键入如下命令: 命令格式:load 文件名 变量名1 变量名2 … 例:load date3 x y a 表示:将保存在 mat 文件data3 中 x 、y 和 a 三个变量读出。 注意:保存数据不改变当前工作空间中的变量,但从文件中载入(读取)数据时,若当前空间与载入的工作空间具有相同的变量,则载入后的变量自动覆盖原来的变量。

  22. 1.4.3 命令窗口控制 除菜单外,MATLAB对命令窗口进行管理时,提供了一些命令:

  23. 1.4.4 M文件的编写与管理 M文件:为解决复杂问题,MATLAB 允许用户将命令、表达式写入到一个简单的文件中,然后由 MATLAB 打开执行,这些文件称为 M 文件,其扩展名为 . m 。 M文件的编写:分两步进行:(1)建立搜寻路径。目的是让MATLAB 能够找到用户的工作子目录。如,用户的工作子目录为 d 盘下的 user\work1,则可以用 path 命令将之加在原来 MATLAB 的搜寻路径之前或之后: path(path,’d:\user\work1’)%将自己的工作目录 d:\user\work1 加在 MATLAB 的搜寻路径之后 (2)切换目录。建立好搜索路径后,就可以用 cd 指令将目录切换到自己的工作目录下使用 MATLAB 了: cd d:\user\work1 %切换目录至用户自己的工作目录d:\user\work1 一般MATLAB会默认一个工作子目录,,用本方法可以将新建的工作子目录work1进入收索范围,即使现在选择的是默认工作子目录,也可以查找新建工作子目录work1 中的文件 改变(切换)目录后,MATLAB将只查找work1中的文件

  24. M文件的编写与管理 M文件函数: Ex.5:input、keyboard、disp的使用。

  25. M文件的编写与管理 M文件管理命令: 如 cd d:\matlab\ch11转换目录到: d盘matlab下的 ch11子目录 只能删除.m文件

  26. 1.4.5 如何获得在线帮助 • 从命令窗口获得帮助: • (1)使用help命令: 如要寻求有关函数wavread的帮助,只需在命令窗口键入 help wavread;当然,也可以只键入help。 • (2)使用lookfor命令: 格式为lookfor关键词。其中,关键词不一定必须是函数本身,只需含相关字母既可。 • 从菜单中获得帮助: • 单击命令窗口中help菜单中的help window选项,或直接在工具栏中单击“?”,会调出一个帮助窗口,单击help desk则会调用浏览器窗口,可以找到相关内容。也可以在help desk的对话栏中输入需要查找的内容,按“go”后进行查询。 例:查找函数 fft2的意义及用法

  27. 第二章 MATLAB的数组 数组是MATLAB的基础,本章将介绍数组的创建、基本运算和基本操作等,学好数组是掌握MATLAB的一个关键。 2.1 简单数组 2.2 创建数组 2.3 数组运算 2.4 数组操作 2.5 多维数组

  28. 2.1 简单数组 例:在x=[0,π]上每隔0.1π计算一个正弦值y=sin(x)。应该重复调用sin函数10次,从而得到: 显然,x是一个有序数,MATLAB可以用数组来表示有序数: X=[0,0.1 π,0.2 π,0.3 π,……,0.9 π, π](用,分隔) 或x=[0 0.1 π 0.2 π 0.3 π …… 0.9 π π](用空格分隔) 这种用一个数表示的一组有序数(或列表),叫做数组。 引入数组后,前面例子的计算,可以仅仅通过一次调用sin函数就完成。这与其他计算机语言不同。 MATLAB 有一列多行、一行多列、多列多行等数组,标量视为一列一行(1×1)的数组。 Ex. 6

  29. 2.2 创建数组 • 2.2.1 数组的访问形式 • 2.2.2 数组的构造 • 1. 创建行向量数组 • 2. 创建列向量数组 • 3. 创建多行、多列数组

  30. 2.2.2.1 创建行向量数组的方法 • 直接键入数组的每一个元素:只适用于元素很少时 • 冒号法:数组=(初值:增量:终值)(增量为1时可以将其省略) • 如:建立X=[0,0.1 π,0.2 π,0.3 π,……,0.9 π, π] • 可以用 x=(0:0.1*pi:pi) • 或 x=(0:0.1:1)*pi 来完成 • linspace法:数组=linspace(初值,终值,元素值个数) • 注意:这时是按元素个数线性分割的! • 如:上例可用 x=linspace(0,1,11)*pi 来完成 • logspace法:数组=logspace(初指数值,终指数值,元素值个数) • 注意:这时是按元素个数指数分割的! x=logspace(0,pi,11) x = Columns 1 through 7 1.0000 1.1213 1.2573 1.4098 1.5807 1.7725 1.9874 Columns 8 through 11 2.2285 2.4987 2.8018 3.1416

  31. 2.2.2.2 创建列向量数组的方法 • 直接键入数组 每个元素:数组=(元素1;元素2;……;元素n) • 冒号法:先用数组a=(初值:增量:终值)产生行向量数组a • 再用 数组b=a’ 将行向量数组 a 变为列向量数组 • linspace法:先用数组a=linspace(初值,终值,元素值个数)产生行向量数组a,再用 数组b=a’ 将行向量数组a变为列向量数组b • logspace法:先用 数组a=logspace(初指数值,终指数值,元素值个数)产生行向量数组a,再用 数组b=a’ 将行向量数组 a 变为列向量数组b。 • 注意: 算子( ’ )、(.’)对实数数组,进行的都是转置运算 • 算子( ’ )对复数数组,进行的是共轭转置运算, • 而算子( .’)对复数数组 ,进行的只是转置运算。 Ex.7

  32. 2.2.2.3 创建多行多列数组 • 在创建多行多列数组时: • 逗号或空格:用于分隔在同一行的元素 • 分号:用于分开不同的行,在输入元素时,按回车也默认为开始新的一行 • 注意:MATLAB严格要求同一数组,所有的行有相同的列数 • 例如:A=[1,2,3 ;4,5,6]创建的是一个 2 × 3的数组: • A= 1 2 3 • 4 5 6 • 一数组和零数组:元素全为1的数组叫1数组,全为0叫0数组。 • MATLAB用 ones(n)和ones(r,c)函数分别创建一个n ×n和r ×c 1数组,用zeros(n)和zeros(r,c)创建n ×n和r ×c 0数组 Ex. 8

  33. 2.3 数组运算 • 数组运算是对数组的每一个元素进行同样的运算 • 标量—数组运算:用一个标量对数组进行加、减、乘、除运算,就是该标量对数组的每一个元素进行同样的运算 • 运算符号为:+ 、-、*、/或\ Ex.9 • 数组—数组运算:两个具有相同维数的数组相加、减、乘、除和幂运算时,是以元素对元素来进行的。 • 运算符号分别为:+ 、-、.*、./、.\和.^ Ex.10 • 数组的访问(调用): • 如果数组 A 已存在,可以对其中的一个或多个元素进行问 • 例如:A(2 , 5) 调用的是该数组第二行第5列的元素 • A(2 , 5:8) 调用的是该数组第二行第5到第8列的元素。 Ex.11

  34. 标量—数组运算

  35. 数组—数组运算

  36. 数组的访问(调用)

  37. 2.4 数组操作 对数组的操作包括插入、重新排列、提取、拉长、置空等,是有效使用 MATLAB 的关键。本节内容有: 2.4.1.1 数组的基本操作 2.4.1.2 数组操作 2.4.1.3 数组编址小结 2.4.2. 按指定条件求子数组 2.4.3 数组的规模 2.4.4 数组操作函数

  38. 2.4.1.1 数组的基本操作 • 插入:设有一个3×3数组A,操作 A(2,3)=0 可使数组 A的第2行第 3列上的元素置为0; 而操作 A(3,6)=1使数组A的第3行第 6列上的元素置为1,且不存在的元素自动插入0 。 Ex.12 • 重新排列:例 B=A(3:-1:1,1:3),3:-1:1表示从A的第3行,每次递减1到第1行,1:3表示从A的第1列,每次递增1到第3列。提取、按列拉长:C=A(:)每次从A提取1列拉长成一个列数组C。 Ex.13 Ex.14 • 置空:删除数组的某行或某列,但 MATLAB 只能删除数组整个行(或整个列)。格式为:B(:,n)=[]删除数组B 的第n列, 和B(m,:)=[]删除数组B的第m 行。 Ex.15

  39. 插入 重新排列

  40. 重新排列 置空

  41. a11 a12 a13 … a1m a21 a22 a23 … a2m an1 an2 an3 … anm 2.4.1.2 数组操作 • Tony’sTrick:重复提取并复制向量,以此生成数组的方法。 • 如:A(:,[n,n,n,n]),表示对数组A的第n列重复提取4次 • A([m,m,m],:),表示对数组A的第m行重复提取3次 Ex.16 • 用单个下标操作矩阵:从第1列第1个元素起,给数组排序编址。如:A(n)调用的是数组A序号为n 的元素,A(n:m),调用的是数组A序号为n 到m的元素。 Ex.17 • 通过逻辑数组操作矩阵:MATLAB允许用逻辑操作数组,但要求逻辑数组与被访问者的规模一样,结果为真时值为1 ,否则为0 。如:abs(x)>a,给出数组 x 中绝对值大于 a 元素,符合条件(结果为真)时为1 ,否则为0 。A=x(abs(x)>=a),又将数组 x 中符合条件的元素的值,赋予数组A 。 Ex.18

  42. 重新排列 重新排列

More Related