matlab n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
MATLAB 基础 PowerPoint Presentation
Download Presentation
MATLAB 基础

play fullscreen
1 / 62

MATLAB 基础

286 Views Download Presentation
Download Presentation

MATLAB 基础

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. MATLAB基础 郑州轻工业学院

  2. MATLAB的发展历程 • MATLAB - MATrix LABoratory • 20世纪七十年代后期:时任美国新墨西哥大学计算机科学系主任的Cleve Moler教授用FORTRAN设计了一组程序接口,此即萌芽状态的MATLAB。 • 1984年成立了MathWorks公司,并把MATLAB正式推向市场。从这时起,MATLAB的内核采用C语言编写,而且除原有的数值计算能力外,还新增了数据图视功能。 • 进入20世纪九十年代的时候,MATLAB已经成为国际控制界公认的标准计算软件。

  3. 主要版本 • 1993年推出MATLAB4.0版本 (1)推出了SIMULINK。这是一个交互式操作的动态系统建模、仿真、分析集成环境。(2)开发了与外部进行直接数据交换的组件,打通了MATLAB进行实时数据分析、处理和硬件开发的道路。(3)推出了符号计算工具包。(4)Notebook 实现了MATLAB与Word的无缝连接。其升级版本MATLAB4.2c应用较广泛。 • 1997年,MATLAB5.0版问世,紧接着是5.1、5.2,以及和1999年春的5.3版,真正32位运算,功能强大,数值计算加快,拥有更丰富的数据类型和结构、更友善的面向对象、更加快速精良的图形可视、更广博的数学和数据分析资源、更多的应用开发工具。其中MATLAB5.3应用最广泛。 • 2001年推出了MATLAB6.0,直到现在广泛使用的MATLAB 6.5,其界面有较大的改观,计算速度有了比较大的改善,增加了与Java的接口 。

  4. MATLAB的功能 • 国际上最为流行的软件之一 • 交互式编程 • 提供丰富可靠的矩阵运算、图形绘制、数据处理、图像处理、方便的Windows编程等便利工具 • 出现了各种以MATLAB为基础的实用工具箱 • 广泛地应用于自动控制、图像信号处理、生物医学工程、语音处理、雷达工程、信号分析、振动理论、时序分析与建模、化学统计学、优化设计等领域。

  5. 接口 严格的说,Matlab并不是一种计算机语言,因为用它编写出来的程序并不能脱离Matlab环境而执行,但从功能上说,Matlab已经完全具备了计算机语言的结构和性能,因此我们也习惯的称之为Matlab语言。 Matlab 5.3以上版本提供了C/C++的接口,通过另外一个工具MatCom,能用Visual C++调用Matlab编写的程序,从而大大减少C++程序的编写难度。此工具我已经用过,效果不错。

  6. 可在MATLAB中键入一个命令,也可以应用MATLAB语言编写应用程序,然后逐条进行翻译、计算,最后返回运算结果。可在MATLAB中键入一个命令,也可以应用MATLAB语言编写应用程序,然后逐条进行翻译、计算,最后返回运算结果。 • MATLAB语言从早期专门用于矩阵运算的计算机语言发展而来 • 基本变量向量和标量作为矩阵的特例引入

  7. MATLAB语言的基本特性 • 演草纸式的数学运算 • 高度集成的工作空间 • 用文件进行数据的存储和调用 • 多种多样的数据显示格式 • 标准的变量命名

  8. MATLAB应用与网上资源 • 工具箱 信号处理、神经网络、鲁棒控制、系统辨识、控制系统、图形处理、模糊逻辑、小波分析、金融管理、概率统计、非线性控制等。 • 网络资源 www.mathworks.com ftp.mathworks.com

  9. Matlab 6.0有30个工具箱包,包括 控制系统工具箱(Control System Toolbox) 信号处理工具箱(Signal Processing toolbox) 系统辨识工具箱(System Identification toolbox) 鲁棒控制工具箱(Robust Control toolbox) μ分析于综合工具箱(μ-analysis and synthesis toolbox) 定量反馈理论工具箱(QFT toolbox) 神经网络工具箱(Neural Network toolbox) 最优化工具箱(Optimisation toolbox) 数据库工具箱(Database toolbox) 网络工具箱(Matlab WebServer)等

  10. MATLAB安装 • 硬件要求 x86: • 软件要求 Windows: Linux: Adobe acrobat reader

  11. Matlab的基本语句结构 基本的赋值语句 变量名列表=表达式 如:A=[1,2,3;4,5,6;7,8,0] • 等号右边的表达式可以用分号结束,也可以用逗号或换行号结束。 • Matlab区分大小写,Abc,ABC,abc表示不同的矩阵名。 • 在矩阵A中,同一行中的内容用逗号分隔,而采用分号来表示换行。 • 一般情况下,用于同行中分隔的逗号是可以由空格来代替的。

  12. Matlab的保留字符串 • 判断0元素用的误差限eps,其默认值为eps=2.2204×10-16 • pi表示圆周率 • Inf表示无穷大。Matlab允许的最大数据为1.797693×10308;一个数据大于此数则认为是Inf。1/0产生Inf。 即使在Matlab中保留了若干字符串,它们还可以重新进行赋值。如果用户想将判0的误差限扩大10倍,则可以采用eps=10×eps命令来进行修正。

  13. 矩阵的基本运算 矩阵A有n行m列,称A矩阵为n×m矩阵。 1 矩阵加减法运算: C=A+B 和C=A-B。 2 矩阵的转置:AT 在Matlab下,矩阵A的转置(包括复矩阵的转置)均可以简单地由A’求出。 3 矩阵乘法 C=A×B 在这里并不需要指定A、B的维数。

  14. 4 矩阵的点乘 两个矩阵对应元素之间的乘积。C=A.×B 5 矩阵的除法 Matlab定义了矩阵的除法运算,其意义相当于矩阵的求逆运算。 如:Ax=B, x=inv(A)×B,也可简单地写成x=A/B。

  15. 6 单个矩阵元素的赋值与运算 Matlab允许用户对一个矩阵地单个元素进行赋值和操作。 Matlab还允许对子矩阵进行定义和处理。 A(:,j)表示A矩阵的第j列元素; A(i,:)表示A矩阵的第i行全部元素。 A(:,1)=[1,4,7] A(2,:)=[4,5,6]

  16. Matlab的控制语句 1 Matlab的循环语句结构 for语句和while语句 • for语句的基本格式 for 循环变量i=表达式S1:表达式S3:表达式S2 循环语句组 end 在C语言中,循环体的内容是以大括号{}括起来的,而在Matlab语言中,循环体的内容是以循环语句和end语句括起来的,所以在使用Matlab时应注意这一点。

  17. while语句的结构while (条件式) 循环语句组end

  18. Matlab的条件转移语句结构基本格式:if(条件式) 条件块语句组endMatlab的条件转移语句结构基本格式:if(条件式) 条件块语句组end

  19. 绝对转移 由于Matlab没有提供绝对转移的指令,所以这样的功能可通过if和while的组合来完成。见例3。 • 复杂的条件结构 if(条件式) 条件块语句组1 else 条件语句组2 end

  20. if(条件式1) 条件块语句组1 elseif (条件式2) 条件块语句组2 ……… end

  21. Matlab的编程基础 1 Matlab允许的文件类型 • Matlab编写的程序分为M函数和M文件,其后缀名均为.m。 • Matlab允许用户调用可执行文件.exe。其调用方式是在>>下键入“!”,再接可执行文件的文件名。 • Matlab通过Mex功能可以实现对C或Fortran语言编写的程序的调用。

  22. 2.6.2 Matlab变量的管理 Size(A)得到A的维数,包括行数和列数,此时A是矩阵; Length(A) 得到A的长度,此时A是向量; Who 查看当前工作空间有哪些变量名; Whos 了解这些变量的具体细节,包括名称(name),大小(size),元素数(element),字节数(bytes)等 Clear 删除变量; Save 文件名 变量列表 其它选项 :将工作空间的变量保存到文件中。 -assii:ASCII码格式 Load 文件名:将save命令存储起来的数据再从文件调入工作空间。

  23. Matlab的绘图功能 1 建立和控制图形窗口 figure 建立新的图形窗口 clf 清除当前图形 close 关闭图形

  24. 2 基本X-Y图形 plot 线性图形 title 图形标题 xlabel X轴标记 ylable Y轴标记 text 文本注释 grid 网格线 hold 保持当前图形 subplot 在一个图形窗口画多个坐标图。 例:subplot(2,3,2);plot(X)表示在2行3列的大图形中的第2号图中画X的形状。

  25. Matlab编程举例 作业: 2002年5月8日 分块矩阵求逆法:A= A11 A12 A21 A22 上面的矩阵是一个分块矩阵,这时 B=A-1= B11 B12 B21 B22 B22=(A22-A21A11-1A12)-1, B12=-A11-1A12B22 B21=-B22A21A11-1, B11=A11-1-B12A21A11-1。

  26. 根据上述算法,计算: A= 2 1 4 -2 -1 -4 3 0 -1 -3 0 1 2 3 4 -2 -3 -4 4 2 8 6 3 12 6 0 -2 9 0 -3 4 6 8 6 9 12 的逆矩阵。(分块维数n1取3) 【允许用inv()求A11-1】

  27. M文件:纯文本文件,扩展名为M,用任何字处理软件都可以编辑修改。M文件:纯文本文件,扩展名为M,用任何字处理软件都可以编辑修改。 ?type exa1.m %This is an example. exp(j*3*pi/4) ?exa1 ans = -0.7071 + 0.7071i

  28. MATLAB命令窗口 • 计算机安装好MATLAB之后,双击MATLAB图标,就可以进入命令窗口,此时意味着系统处于准备接受命令的状态,可以在命令窗口中直接输入命令语句。

  29. 通用命令 cd 显示或改变工作目录 hold 图形保持开关 dir 显示目录下的文件 disp 显示变量或文字内容 type 显示文件内容 path 显示搜索目录 clear 清理内存变量 save 保存内存变量到指定文件 clf 清除图形窗口 load 加载指定文件的变量 pack 收集内存碎片 diary 日志文件 clc 清除工作窗 quit 退出MATLAB echo 工作窗信息显示开关 ! 调用dos命令

  30. 命令行键盘技巧  调用上一行 home 光标置于当前行开头  调用下一行 end 光标置于当前行末尾  光标左移一个字符 esc 清除当前输入行  光标右移一个字符 del 删除光标处的字符 Ctrl+  光标左移一个单词 backspace 删除光标前的字符 Ctrl+  光标右移一个单词 alt+backspace 恢复上一次的删除

  31. 标点 : 具有多种应用功能 . 小数点及域访问符 ;区分行,取消运行显示等 …续行符 ,区分列,函数参数分隔符 % 注释标记 () 指定运算先后次序 ! 调用操作系统运算 [] 矩阵定义标志 = 赋值标记 {} 用于构成单元数组 ‘ 字符串标示符

  32. MATLAB搜索路径 • MATLAB的一切操作都是在其搜索路径中进行的,如果调用的函数在搜索路径之外,系统将认为该函数不存在。 • 路径设置方法 • 1、通过对话框设置 在MATLAB主窗口菜单中【file】-【set Path】选项。 • 2、path命令

  33. 2.1 path命令 ?path MATLABPATH E:\MATLAB\works E:\MATLAB\toolbox\matlab\general E:\MATLAB\toolbox\matlab\ops E:\MATLAB\toolbox\matlab\lang E:\MATLAB\toolbox\matlab\elmat E:\MATLAB\toolbox\matlab\elfun E:\MATLAB\toolbox\matlab\specfun E:\MATLAB\toolbox\matlab\matfun E:\MATLAB\toolbox\matlab\datafun E:\MATLAB\toolbox\matlab\polyfun ……

  34. 2.2 genpath命令 ?genpath ans = E:\MATLAB\toolbox\matlab\datafun;E:\MATLAB\toolbox\matlab\datatypes;E:\MATLAB\toolbox\matlab\demos;E:\MATLAB\toolbox\matlab\elfun;E:\MATLAB\toolbox\matlab\elmat;E:\MATLAB\toolbox\matlab\funfun;E:\MATLAB\toolbox\matlab\general;E:\MATLAB\toolbox\matlab\graph2d;E:\MATLAB\toolbox\matlab\graph3d;E:\MATLAB\toolbox\matlab\graphics;E:\MATLAB\toolbox\matlab\iofun;E:\MATLAB\toolbox\matlab\iofun\src;E:\MATLAB\toolbox\matlab\lang;E:\MATLAB\toolbox\matlab\matfun;

  35. 2.3 editpath或pathtool命令

  36. 2.4 扩展搜索路径 将新目录扩展到搜索路径中 1、用path命令 ?path(path,'e:\matlab\works') 2、用addpath命令 将新目录加到搜索路径的末尾 ?addpath e:\matlab\works –end 将新目录加到搜索路径的开始 ?addpath e:\matlab\works -begin 3、使用路径设置对话框

  37. MATLAB帮助 • MATLAB Help 完善的HTML格式联机帮助系统,非常全面。使用方法: 1.从help菜单中选取; 2.在命令窗口中执行helpdesk或doc。 • PDF文档 用Adobe acrobat reader阅读。

  38. Help系列 • helpwin

  39. Help ?help HELP topics: matlab\general - General purpose commands. matlab\ops - Operators and special characters. matlab\lang - Programming language constructs. matlab\elmat - Elementary matrices and matrix manipulation. matlab\elfun - Elementary math functions. matlab\specfun - Specialized math functions. matlab\matfun - Matrix functions - numerical linear algebra. matlab\datafun - Data analysis and Fourier transforms. …… For more help on directory/topic, type "help topic".

  40. Help + 函数(类)名 ?help general General purpose commands. MATLAB Toolbox Version 5.2 18-Dec-1997 General information help - On-line help, display text at command line. helpwin - On-line help, separate window for navigation. helpdesk - Comprehensive hypertext documentation and troubleshooting. demo - Run demonstrations. ver - MATLAB, SIMULINK, and toolbox version information. …… See also PUNCT.

  41. ?help helpwin HELPWIN On-line help, separate window for navigation. HELPWIN TOPIC opens a help window and displays the help text for the given TOPIC. Links are created to functions referenced in the 'See Also' line of the help text. HELPWIN(HELP_STR,TITLE) displays the string HELP_STR in the help window. HELP_STR may be passed in as a string with each line separated by carriage returns, a column vector cell array of strings with each cell (row) representing a line or as a string matrix with each row representing a line. The optional string TITLE will appear in the title edit box. HELPWIN({TITLE1 HELP_STR1;TITLE2 HELP_STR2;...},PAGE) displays one page of multi-page help text. The multi-page help text is passed in as a cell array of strings or cells containing TITLE and HELP_STR pairs. Each row of the multi-page help text cell array (dimensioned number of pages by 2) consists of a title string paired with a string, cell array or string matrix of help text. The second argument PAGE is a string which must match one of the TITLE entries in the multi-page help text. The matching TITLE represents the page that is to be displayed first. If no second argument is given, the first page is displayed. A third argument may be passed to HELPWIN which is a string that becomes the title of the help window figure. Additional arguments, after the window title, will be interpreted as Handle Graphics parameter-value pairs to be applied to the text displayed in the help window. Examples. helpwin plot helpwin('Help String','title') helpwin(['Help text for' sprintf('\n') 'my m-file.'],'title') helpwin({'Help String for';'my m-file'},'title') helpwin(str,'Topic 2','My Title') where, str = { 'Topic 1' 'Help string for Topic 1'; 'Topic 2' 'Help string for Topic 2'; 'Topic 3' 'Help string for Topic 3' } See also DOC, DOCOPT, HELP, WEB.

  42. Lookfor 根据用户提供的关键字搜索相关的函数。 ?lookfor diff SETDIFF Set difference. DIFF Difference and approximate derivative. POLYDER Differentiate polynomial. ODE113 Solve non-stiff differential equations, variable order method. ODE15S Solve stiff differential equations, variable order method. ODE23 Solve non-stiff differential equations, low order method. ODE23S Solve stiff differential equations, low order method. ……

  43. 帮助机理 • Help命令显示相应M文件的注释区 • Lookfor命令搜索路径中每个M文件的第一行,扫描是否包含所要查询的字符串。 ?help exa1 This is an example.

  44. 其他帮助命令 • Exist 变量检验函数 • What 目录中文件列表 • Who 内存变量列表 • Whos 内存变量详细信息 • Which 确定文件位置

  45. 联机演示系统 • 基本介绍 Intro