1.25k likes | 1.45k Views
MATLAB 程序设计与应用. 计算机学院 • 软件学院. 秦科 Email : qinkesci@139.com. Why do you want to learn Matlab? What do you expect from this course?. [X,Y] = meshgrid(-10:0.5:10); R = sqrt(X.^2 + Y.^2) + eps; Z = sin(R)./R; mesh(X,Y,Z). Lorenz 方程. 参考教材
E N D
MATLAB程序设计与应用 计算机学院•软件学院 秦科 Email:qinkesci@139.com
Why do you want to learn Matlab? • What do you expect from this course?
[X,Y] = meshgrid(-10:0.5:10); R = sqrt(X.^2 + Y.^2) + eps; Z = sin(R)./R; mesh(X,Y,Z)
参考教材 • MATLAB基础与应用教程人民邮电出版社 蔡旭辉 刘卫国 蔡立燕 编著 2009年8月第一版; • MATLAB与科学计算(第2版)电子工业出版社 王沫然 编著 2005年第四次印刷 • MATLAB实用教程(第2版)电子工业出版社 苏金明 阮沈勇 编著 2008年02月出版
主要内容 • 一、matlab的基本使用方法(4学时) • 二、matlab的数值计算(6学时) • 三、 matlab的符号运算(6学时) • 四、 matlab计算的可视化(4学时) • 五、 matlab程序设计(8学时) • 六、 matlab图形用户界面设计(4学时)
第1章 MATLAB基本使用方法 一、了解MATLAB的发展、应用、功能、特点和系统构成 二、重点介绍MATLAB的语言环境、基本运算、变量和常用函数
MATLAB概述 • MATLAB是MathWorks公司开发的科学与工程计算软件,它以矩阵运算为基础,把计算、绘图及动态系统仿真等功能有机地融合在一起。同时,它又具有程序设计语言的基本特征。目前,MATLAB在工程计算与数值分析、控制系统设计与仿真、信号处理、图像处理、金融建模设计与分析等学科领域都有着十分广泛的应用。
1.1 MATLAB发展 Matlab语言是由美国的Clever Moler博士于1980年开发,设计者的初衷是为解决“线性代数”课程的矩阵运算问题,取名MATLAB即Matrix Laboratory矩阵实验室的意思
1.1 MATLAB发展 • Cleve Moler编写的使用Linpack 和Eispack的接口程序——MATLAB • 1993 MATLAB 4.0版 • 1997 MATLAB 5.0版 • 2000年10月 MATLAB 6.0版 • 2004年7月 MATLAB 7.0版 • 2005年9月 MATLAB 7.1版 • 随后每年发布两次以年份命名的版本,如R2006a(MATLAB 7.2)、R2006b(MATLAB 7.3)、R2007a(MATLAB 7.4)、R2007b(MATLAB 7.5)、R2008a(MATLAB 7.6)、R2008b(MATLAB 7.7)、R2009a(MATLAB 7.8)、R2009b(MATLAB 7.9) 和最新的R7.10
Matlab的安装 • 最新的Matlab 2010 : • 如果你的操作系统是windows Vista,那么只能安装Matlab 7.0以上版本
1.2 MATLAB的应用 • 数值分析 • 数值和符号计算 • 工程与科学绘图 • 控制系统的设计与仿真 • 通讯系统设计与仿真 • 数字图像处理技术 • 数字信号处理技术 • 财务与金融工程
1.3 MATLAB语言的优点 • 强大的数值(矩阵)运算功能 • 广泛的符号运算功能 • 语言简单,易学易用 • 高级与低级兼备的图形功能(计算结果的可视化功能) • 可靠的容错功能 • 应用灵活的兼容与接口功能 • 信息量丰富的联机检索功能
MATLAB语言的功能(续) • 1.3.1.矩阵运算功能 • 变量 矩阵,运算 矩阵的运算 例如:C = A + B ,A,B,C都是矩阵,是矩阵的加运算 即使一个常数,Y=5,MATLAB也看做是一个11的矩阵 • 再例如,求解线性方程组: • 在MATLAB命令窗口输入命令:
MATLAB语言的功能(续) 1.3.2.符号运算功能 • 符号运算即用字符串进行数学分析 • 允许变量不赋值而参与运算 • 用于解代数方程、微积分、复合导数、积分、二重积分、有理函数、微分方程、泰勒级数展开等等,可求得解析符号解 • 例如:求解线性方程组: • 也可以通过符号计算求方程的解。
MATLAB语言的功能(续) 1.3.3.高级与低级兼备的图形功能(计算结果的可视化) • 具有高层绘图功能——二维、三维绘图 • 具有底层绘图功能——句柄绘图 • 使用plot函数可随时将计算结果可视化
1.3.3高级与低级兼备的图形功能(计算结果的可视化)1.3.3高级与低级兼备的图形功能(计算结果的可视化) • 例如,分别绘制函数y=300sinx/x和y=x^2的曲线 • x=-20:0.1:20; • plot(x,300*sin(x)./x,':',x,x.^2);
MATLAB语言的功能(续) • 1.3.4.图形化程序编制功能 • 动态系统进行建模、仿真和分析的软件包 • 用结构图编程,而不用程序。编程只需拖几个方块、连几条线,即可实现编程功能 如下页图所示:
MATLAB语言功能(续) • 1.3.5.丰富的MATLAB工具箱 • Matlab工具箱主要分为:功能性工具箱和学科性工具箱 • 功能性工具箱主要用来扩充其符号计算功能、可视建模功能、文字处理功能等;
学科性工具箱专业性比较强,主要包括: 控制系统工具箱(Control System Toolbox)、信号处理工具箱(Signal Processing Toolbox)、神经元网络工具箱(Neural Network Toolbox)、最优化工具箱(Optimization Toolbox)、金融工具箱(Financial Toolbox)、统计工具箱(Statistics Toolbox)、图象处理工具箱(Image Processing Toolbox)等等。
MATLAB语言功能(续) • 1.3.6.MATLAB的兼容功能 • 可与C语言、FORTURE语言跨平台兼容 • 用函数CMEX、FMEX实现
MATLAB语言功能(续) • 1.3.7.MATLAB的容错功能 • 非法操作时,给出提示,并不影响其操作 • ans(-1) • ??? Index exceeds matrix dimensions.
MATLAB语言功能(续) • 1.3.8. MATLAB的开放式可扩充结构 • MATLAB 所有函数都是开放的。 • 除内部函数外,所有MATLAB基本文件和各种工具箱文件都是可读可改的源文件,用户可通过对源文件的修改或加入自己编写的文件来构成新的专用工具箱。 • 正因为此功能,使得MATLAB的应用越来越广泛。
MATLAB语言功能(续) • 1.3.9.强大的联机检索帮助系统 • 可随时检索MATLAB函数 • 可随时查询MATLAB函数的使用方法
1.4 MATLAB系统的特点 • 1.4.1.提供了大量的现成的工具 • 丰富的函数和工具箱 • 图形和用户界面 • 仿真功能块库 • 1.4.2.具有强大的可视化功能 • 方便的2D和3D绘图工具 • 面向图形对象的操作 • 强大的电影和程序动画的制作 • 连续与离散数据的图形表现
1.4 MATLAB系统的特点(续) • 1.4.3.速度快 • 矢量化运算 • 应用编程接口 • M文件编译器 • 预处理p文件 • 实时代码生成及外部运行模式 • 1.4.4.具有良好的工作平台 • 具有与C、FORTRAN与C++程序的接口 • 与word有共享界面
1.4 MATLAB系统的特点(续) • 1.4.5.开放和可扩展 • 自定义数据类型(面向对象编程) • C/C++数学库和图形库 • 建立独立可任意发布的外部应用 • 图形界面设计 • 针对目标自定义实时应用模板
1.5 MATLAB的集成开发环境 • 1.5.1 MATLAB操作界面 • 1.主窗口
Matlab菜单栏 包括七个菜单项,其中“File”菜单实现有关文件的操作。
“Desktop”菜单用于设置MATLAB集成环境的显示方式“Desktop”菜单用于设置MATLAB集成环境的显示方式
“Windows”菜单用于关闭所有打开的编辑窗口或者选择活动窗口“Windows”菜单用于关闭所有打开的编辑窗口或者选择活动窗口
1.5.1 MATLAB操作界面 • 2.命令窗口 • 命令窗口(Command Window)用于输入命令并显示除图形以外的所有执行结果。 • 一般来说,一个命令行输入一条命令,命令行以回车结束。但一个命令行也可以输入若干条命令,各命令之间以逗号分隔,若前一命令后带有分号,则逗号可以省略。例如: • x=720,y=86 • x = • 720 • y = • 86 • x=720;y=86 • y = • 86
如果一个命令行很长,一个物理行之内写不下,可以在第1个物理行之后加上3个小黑点并按下回车键,然后接着下一个物理行继续写命令的其他部分。3个小黑点称为续行符,即把下面的物理行看作该行的逻辑继续。例如:如果一个命令行很长,一个物理行之内写不下,可以在第1个物理行之后加上3个小黑点并按下回车键,然后接着下一个物理行继续写命令的其他部分。3个小黑点称为续行符,即把下面的物理行看作该行的逻辑继续。例如: • z=1+1/(1*2)+1/(1*2*3)+1/(1*2*3*4)+ … • 1/(1*2*3*4*5)
3.工作空间窗口 • 工作空间(Workspace)是MATLAB用于存储各种变量和结果的内存空间。
4.当前目录窗口 • 对文件进行有效的组织和管理 • 当前目录(Current Directory)是指MATLAB运行时的工作目录,只有在当前目录或搜索路径下的文件、函数才可以被运行或调用。如果没有特殊指明,数据文件也将存放在当前目录下。
5.命令历史窗口 • 自动保留自安装起所有用过的命令的历史记录,并且还标明了使用时间,从而方便用户查询。而且,通过双击命令可进行历史命令的再运行。如果要清除这些历史记录,可以选择“Edit”菜单中的“Clear Command History”命令或选择该窗口的快捷菜单中的“Clear Command History”命令。
6.Start按钮 • 在MATLAB左下角还有一个Start按钮,提供快速访问MATLAB的各种工具和查阅MATLAB包含的各种资源的命令菜单。
1.5.2 MATLAB的搜索路径 • MATLAB的文件是通过不同的路径进行组织和管理的。当用户在命令窗口输入一条命令后,MATLAB将按照下列顺序搜索所输入的命令。 • 1.默认搜索过程 • ● 检查该命令是不是一个变量。 • ● 检查该命令是不是一个内部函数。 • ● 检查该命令是否为当前目录下的M文件。 • ● 检查该命令是否为MATLAB搜索路径中其他目录下的 M文件。
2.设置搜索路径 • (1)用path命令设置搜索路径 • 例如,将用户目录c:\mydir加到搜索路径下: • path(path,'e:\matlab\work') • (2)用对话框设置搜索路径 • 在MATLAB的File菜单中选择Set Path命令或在命令窗口执行pathtool命令
1.5.3 MATLAB的帮助功能 • 1.5.3.1 帮助界面 • 进入MATLAB帮助界面可以通过以下3种方法。 • ●单击MATLAB主窗口工具栏中的Help按钮。 • ●在命令窗口中输入“helpwin”、“helpdesk”或“doc”命令。 • ●选择Help菜单中的“MATLAB Help”选项。
1.5.3.2 帮助命令 • 1.help命令 • help命令是查询函数语法的最基本方法,查询信息直接显示在命令窗口。在命令窗口中直接输入help命令将会显示当前帮助系统中所包含的所有项目,即搜索路径中所有的目录名称。 • 同样,可以通过help加函数名来显示该函数的帮助说明。
例如,为了显示magic函数的使用方法与功能 • help magic • MAGIC Magic square. • MAGIC(N) is an N-by-N matrix constructed from the integers • 1 through N^2 with equal row, column, and diagonal sums. • Produces valid magic squares for all N > 0 except N = 2. • Reference page in Help browser • doc magic
2.lookfor命令 • help命令可以帮助用户了解函数的用法。若需要查找一个不知道其确切名称的函数名时,help命令就不能满足,这时可用lookfor命令查找根据用户提供的关键字搜索相关函数。