MATLAB软件基础 SIMATLAB概述 MATLAB是 MATrix LABoratory(“矩阵实验室”)的缩写,是由美国 Math Works 公司开发的集数值计算、符号计算和图形可视化三大基本功能于一体的,功能强大 操作简单的语言。是国际公认的优秀数学应用软件之 20世纪80年代初期, Cleve Moler与 John Little等利用C语言开发了新一代的 MATLA B语言,此时的 MATLAB语言已同时具备了数值计算功能和简单的图形处理 功能。1984年, Cleve moler与 John Little等正式成立了 Mathworks公司,把 MATLAB 语言推向市场,并开始了对 MATLAB工具箱等的开发设计。1993年, Mathworks公司 推出了基于个人计算机的 MATLAB40版本,到了1997年又推出了 MATLAB5X版 本( Release l1),并在2000年又推出了最新的 MATLAB6版本( Release2)。 现在,MA∏LAB已经发展成为适合多学科的大型软件,在世界各高校, MATLAB 已经成为线性代数、数值分析、数理统计、优化方法、自动控制、数字信号处理、动 态系统仿真等高级课程的基本教学工具。特别是最近几年, MATLAB在我国大学生数 学建模竞赛中的应用,为参赛者在有限的时间内准确、有效的解决问题提供了有力的 保证 概括地讲,整个 MATLAB系统由两部分组成,即 MATLAB内核及辅助工具箱, 两者的调用构成了 MATLA B的强大功能。 MATLAB语言以数组为基本数据单位,包 括控制流语句、函数、数据结构、输入输出及面向对象等特点的高级语言,它具有以 下主要特点: 1)运算符和库函数极其丰富,语言简洁,编程效率高, MATLAB除了提供和C语 言一样的运算符号外,还提供广泛的矩阵和向量运算符。利用其运算符号和库函数可 使其程序相当简短,两三行语句就可实现几十行甚至几百行C或 FORTRAN的程序功 能 2)既具有结构化的控制语句(如for循环、 while循环、 break语句、if语句和 switch 语句),又有面向对象的编程特性。 3)图形功能强大。它既包括对二维和三维数据可视化、图像处理、动画制作等高 层次的绘图命令,也包括可以修改图形及编制完整图形界面的、低层次的绘图命令 4)功能强大的工具箱。工具箱可分为两类:功能性工具箱和学科性工具箱。功能 性工具箱主要用来扩充其符号计算功能、图示建模仿真功能、文字处理功能以及与硬 件实时交互的功能。而学科性工具箱是专业性比较强的,如优化工具箱、统计工具箱、 控制工具箱、小波工具箱、图象处理工具箱、通信工具箱等。 5)易于扩充。除内部函数外,所有 MATLAB的核心文件和工具箱文件都是可读 可改的源文件,用户可修改源文件和加入自己的文件,它们可以与库函数一样被调用
MATLAB 软 件 基 础 §1 MATLAB 概述 MATLAB 是 MATrix LABoratory(“矩阵实验室”)的缩写,是由美国 MathWorks 公司开发的集数值计算、符号计算和图形可视化三大基本功能于一体的,功能强大、 操作简单的语言。是国际公认的优秀数学应用软件之一。 20 世纪 80 年代初期,Cleve Moler 与 John Little 等利用 C 语言开发了新一代的 MATLAB 语言,此时的 MATLAB 语言已同时具备了数值计算功能和简单的图形处理 功能。1984 年,Cleve Moler 与 John Little 等正式成立了 Mathworks 公司,把 MATLAB 语言推向市场,并开始了对 MATLAB 工具箱等的开发设计。1993 年,Mathworks 公司 推出了基于个人计算机的 MATLAB 4.0 版本,到了 1997 年又推出了 MATLAB 5.X 版 本(Release 11),并在 2000 年又推出了最新的 MATLAB 6 版本(Release 12)。 现在,MATLAB 已经发展成为适合多学科的大型软件,在世界各高校,MATLAB 已经成为线性代数、数值分析、数理统计、优化方法、自动控制、数字信号处理、动 态系统仿真等高级课程的基本教学工具。特别是最近几年,MATLAB 在我国大学生数 学建模竞赛中的应用,为参赛者在有限的时间内准确、有效的解决问题提供了有力的 保证。 概括地讲,整个 MATLAB 系统由两部分组成,即 MATLAB 内核及辅助工具箱, 两者的调用构成了 MATLAB 的强大功能。MATLAB 语言以数组为基本数据单位,包 括控制流语句、函数、数据结构、输入输出及面向对象等特点的高级语言,它具有以 下主要特点: 1)运算符和库函数极其丰富,语言简洁,编程效率高,MATLAB 除了提供和 C 语 言一样的运算符号外,还提供广泛的矩阵和向量运算符。利用其运算符号和库函数可 使其程序相当简短,两三行语句就可实现几十行甚至几百行 C 或 FORTRAN 的程序功 能。 2)既具有结构化的控制语句(如 for 循环、while 循环、break 语句、if 语句和 switch 语句),又有面向对象的编程特性。 3)图形功能强大。它既包括对二维和三维数据可视化、图像处理、动画制作等高 层次的绘图命令,也包括可以修改图形及编制完整图形界面的、低层次的绘图命令。 4)功能强大的工具箱。工具箱可分为两类:功能性工具箱和学科性工具箱。功能 性工具箱主要用来扩充其符号计算功能、图示建模仿真功能、文字处理功能以及与硬 件实时交互的功能。而学科性工具箱是专业性比较强的,如优化工具箱、统计工具箱、 控制工具箱、小波工具箱、图象处理工具箱、通信工具箱等。 5)易于扩充。除内部函数外,所有 MATLAB 的核心文件和工具箱文件都是可读 可改的源文件,用户可修改源文件和加入自己的文件,它们可以与库函数一样被调用
2 MATLAB的安装与启动 21 MATLAB的安装 要用 MATLAB6,首先必须在计算机上安装 MATLAB6应用软件,随着软件功能 的不断完善,MA∏LAB对计算机系统配置的要求越来越高。下面给出安装和运行 MA∏LAB6所需要的计算机系统配置 ◆ MATLAB6对硬件的要求 CPU要求: Pentium I Pentium Ill、 AMD Athlon或者更高 光驱:8倍速以上; 内存:至少64MB,但推荐128MB以上 硬盘:视安装方式不同要求不统一,但至少留1GB用于安装(安装后未必有1GB) 显卡:8位 ◆ MATLAB6对软件的要求 Windows95、 Window98、 Windows ni或 Windows2000 Word97或word2000等,用于使用 MATLAB Notebook Adobe Acrobat Reader用于阅读 MATLAB的PDF的帮助信息 MATLAB6的安装和其它应用软件类似,可按照安装向导进行安装,这里不再赘述。 22 MATLAB的启动和退出 与常规的应用软件相同, MATLAB的启动也有多种方式,首先常用的方法就是双 击桌面的 MATLAB图标,也可以在开始菜单的程序选项中选择 MATLAB组件中的快 捷方式,当然也可以在 MATLAB的安装路径的子目录中选择可执行文件 “ MATLAB. exe”。 启动 MATLAB后,将打开一个 MATLAB的欢迎界面,随后打开 MATLAB的桌 面系统( Desktop)如图2-1所示 n? owes [CaoweI Rsw-4aimheas 图2-1 MATLAB的桌面系统
§2 MATLAB 的安装与启动 2.1 MATLAB 的安装 要用 MATLAB 6,首先必须在计算机上安装 MATLAB 6 应用软件,随着软件功能 的不断完善,MATLAB 对计算机系统配置的要求越来越高。下面给出安装和运行 MATLAB 6 所需要的计算机系统配置。 ◆ MATLAB 6 对硬件的要求 CPU 要求:Pentium II、Pentium III、AMD Athlon 或者更高; 光驱:8 倍速以上; 内存:至少 64MB,但推荐 128MB 以上; 硬盘:视安装方式不同要求不统一,但至少留 1GB 用于安装(安装后未必有 1GB); 显卡:8 位; ◆ MATLAB 6 对软件的要求 Windows95 、Window98、Windows NT 或 Windows2000; Word97 或 word2000 等,用于使用 MATLAB Notebook; Adobe Acrobat Reader 用于阅读 MATLAB 的 PDF 的帮助信息。 MATLAB 6 的安装和其它应用软件类似,可按照安装向导进行安装,这里不再赘述。 2.2 MATLAB 的启动和退出 与常规的应用软件相同,MATLAB 的启动也有多种方式,首先常用的方法就是双 击桌面的 MATLAB 图标,也可以在开始菜单的程序选项中选择 MATLAB 组件中的快 捷 方 式 ,当 然 也 可以 在 MATLAB 的安装路径的子目录中选择可执行文件 “MATLAB.exe”。 启动 MATLAB 后,将打开一个 MATLAB 的欢迎界面,随后打开 MATLAB 的桌 面系统(Desktop)如图 2-1 所示。 图 2-1 MATLAB 的桌面系统
S3 MATLAB的开发环境 MATLAB的开发环境就是在使用 MATLAB的过程中可激活的,并且为用户使用 提供支持的集成系统。这里介绍几个比较重要的如:桌面平台系统、帮助系统和数据 交换系统。 31 MATLAB桌面平台 桌面平台是各桌面组件的展示平台,默认设置情况下的桌面平台包括6个窗口, 具体如下: 3.11 MATLAB主窗口 MA∏LAB6比早期版本增加了一个主窗口。该窗口不能进行任何计算任务的操作, 只用来进行一些整体的环境参数的设置 312命令窗口( Command window) 命令窗口是对 MATLAB进行操作的主要载体,默认的情况下,启动 MATLAB时 就会打开命令窗口,显示形式如图1-1所示。一般来说, MATLAB的所有函数和命令 都可以在命令窗口中执行。在 MATLAB命令窗口中,命令的实现不仅可以由菜单操作 来实现,也可以由命令行操作来执行,下面就详细介绍 MALTAB命令行操作。 实际上,掌握 MALAB命令行操作是走入 MATLAB世界的第一步,命令行操作实 现了对程序设计而言简单而又重要的人机交互,通过对命令行操作,避免了编程序的 麻烦,体现了 MATLAB所特有的灵活性 例如 %在命令窗口中输入sin(pi/5),然后单击回车键,则会得到该表达式的值 sin(pi/5) ns- 0.5878 由例可以看出,为求得表达式的值,只需按照 MALAB语言规则将表达式输入即 可,结果会自动返回,而不必像其他的程序设计语言那样,编制冗长的程序来执行。 当需要处理相当繁琐的计算时,可能在一行之内无法写完表达式,可以换行表示,此 时需要使用续行符“……”否则 MATLAB将只计算一行的值,而不理会该行是否己输 入完毕 例如 sin(1/9*pi)+sin(2/9*pi)+sin(3/9*pi)+ sin(4/9*p)+sin(5/9*pi)+sin(6/9*pi)+… sin(7/9*pi)+sin(8/9*pi)+sin(9/9*pi)+…… ans- 5.6713
§3 MATLAB 的开发环境 MATLAB 的开发环境就是在使用 MATLAB 的过程中可激活的,并且为用户使用 提供支持的集成系统。这里介绍几个比较重要的如:桌面平台系统、帮助系统和数据 交换系统。 3.1 MATLAB 桌面平台 桌面平台是各桌面组件的展示平台,默认设置情况下的桌面平台包括 6 个窗口, 具体如下: 3.1.1 MATLAB 主窗口 MATLAB6 比早期版本增加了一个主窗口。该窗口不能进行任何计算任务的操作, 只用来进行一些整体的环境参数的设置。 3.1.2 命令窗口(Command Window) 命令窗口是对 MATLAB 进行操作的主要载体,默认的情况下,启动 MATLAB 时 就会打开命令窗口,显示形式如图 1-1 所示。一般来说,MATLAB 的所有函数和命令 都可以在命令窗口中执行。在 MATLAB 命令窗口中,命令的实现不仅可以由菜单操作 来实现,也可以由命令行操作来执行,下面就详细介绍 MALTAB 命令行操作。 实际上,掌握 MALAB 命令行操作是走入 MATLAB 世界的第一步,命令行操作实 现了对程序设计而言简单而又重要的人机交互,通过对命令行操作,避免了编程序的 麻烦,体现了 MATLAB 所特有的灵活性。 例如: %在命令窗口中输入 sin(pi/5),然后单击回车键,则会得到该表达式的值 sin(pi/5) ans= 0.5878 由例可以看出,为求得表达式的值,只需按照 MALAB 语言规则将表达式输入即 可,结果会自动返回,而不必像其他的程序设计语言那样,编制冗长的程序来执行。 当需要处理相当繁琐的计算时,可能在一行之内无法写完表达式,可以换行表示,此 时需要使用续行符“……”否则 MATLAB 将只计算一行的值,而不理会该行是否已输 入完毕。 例如: sin(1/9*pi)+sin(2/9*pi)+sin(3/9*pi)+…… sin(4/9*pi)+sin(5/9*pi)+sin(6/9*pi)+…… sin(7/9*pi)+sin(8/9*pi)+sin(9/9*pi)+…… ans= 5.6713
使用续行符之后 MATLAB会自动将前一行保留而不加以计算,并与下一行衔接 等待完整输入后再计算整个输入的结果 在 MATLAB命令行操作中,有一些键盘按键可以提供特殊而方便的编辑操作。比 如:“↑”可用于调出前一个命令行,“↓”可调出后一个命令行,避免了重新输入的 麻烦。当然下面即将讲到的历史窗口也具有此功能 313历史窗口( Command History) 历史命令窗口是 MATLAB6新增添的一个用户界面窗口,默认设置下历史命令窗 口会保留自安装时起所有命令的历史记录,并标明使用时间,以方便使用者的查询。 而且双击某一行命令,即在命令窗口中执行该命令。 3.14发行说明书窗口( Launch Pad) 发行说明书窗口是 MATLAB6所特有的,用来说明用户所拥有的 Mathworks公司 产品的工具包、演示以及帮助信息。当选中该窗口中的某个组件之后,可以打开相应 的窗口工具包 315当前目录窗口( Current Directory) 在当前目录窗口中可显示或改变当前目录,还可以显示当前目录下的文件,包括 文件名、文件类型、最后修改时间以及该文件的说明信息等并提供搜索功能 316工作空间管理窗口( Workspace) 工作空间管理窗口是 MATLAB的重要组成部分。在工作空间管理窗口中将显示所 有目前保存在内存中的 MATLAB变量的变量名、数据结构、字节数以及类型,而不同 的变量类型分别对应不同的变量名图标。 3.2 MATLAB帮助系统 完善的帮助系统是任何应用软件必要的组成部分。 MATLAB提供了相当丰富的帮 助信息,同时也提供了获得帮助的方法。首先,可以通过桌面平台的【Help】菜单来 获得帮助,也可以通过工具栏的帮助选项获得帮助。此外, MATLAB也提供了在命令 窗口中的获得帮助的多种方法,在命令窗口中获得 MATLAB帮助的命令及说明列于表 3-1中。其调用格式为: 命令+指定参数 表3-1 在帮助浏览器中显示指定函数的参考信息 help 在命令窗口中显示M文件帮助 helpbrowser打开帮助浏览器,无参数 helpwin 打开帮助浏览器,并且见初始界面置于 MATLAB函数的M文件 帮助信息 lookfor 在命令窗口中显示具有指定参数特征函数的M文件帮助 显示指定的网络页面,默认为 MATLAB帮助浏览器
使用续行符之后 MATLAB 会自动将前一行保留而不加以计算,并与下一行衔接, 等待完整输入后再计算整个输入的结果。 在 MATLAB 命令行操作中,有一些键盘按键可以提供特殊而方便的编辑操作。比 如:“↑”可用于调出前一个命令行,“↓”可调出后一个命令行,避免了重新输入的 麻烦。当然下面即将讲到的历史窗口也具有此功能。 3.1.3 历史窗口(Command History) 历史命令窗口是 MATLAB6 新增添的一个用户界面窗口,默认设置下历史命令窗 口会保留自安装时起所有命令的历史记录,并标明使用时间,以方便使用者的查询。 而且双击某一行命令,即在命令窗口中执行该命令。 3.1.4 发行说明书窗口(Launch Pad) 发行说明书窗口是 MATLAB6 所特有的,用来说明用户所拥有的 Mathworks 公司 产品的工具包、演示以及帮助信息。当选中该窗口中的某个组件之后,可以打开相应 的窗口工具包。 3.1.5 当前目录窗口(Current Directory ) 在当前目录窗口中可显示或改变当前目录,还可以显示当前目录下的文件,包括 文件名、文件类型、最后修改时间以及该文件的说明信息等并提供搜索功能。 3.1.6 工作空间管理窗口(Workspace) 工作空间管理窗口是 MATLAB 的重要组成部分。在工作空间管理窗口中将显示所 有目前保存在内存中的 MATLAB 变量的变量名、数据结构、字节数以及类型,而不同 的变量类型分别对应不同的变量名图标。 3.2 MATLAB 帮助系统 完善的帮助系统是任何应用软件必要的组成部分。MATLAB 提供了相当丰富的帮 助信息,同时也提供了获得帮助的方法。首先,可以通过桌面平台的【Help】菜单来 获得帮助,也可以通过工具栏的帮助选项获得帮助。此外,MATLAB 也提供了在命令 窗口中的获得帮助的多种方法,在命令窗口中获得 MATLAB 帮助的命令及说明列于表 3-1 中。其调用格式为: 命令+指定参数 表 3-1 命 令 说 明 doc 在帮助浏览器中显示指定函数的参考信息 help 在命令窗口中显示 M 文件帮助 helpbrowser 打开帮助浏览器,无参数 helpwin 打开帮助浏览器,并且见初始界面置于 MATLAB 函数的 M 文件 帮助信息 lookfor 在命令窗口中显示具有指定参数特征函数的 M 文件帮助 web 显示指定的网络页面,默认为 MATLAB 帮助浏览器
例如: SIN(X) is the sine of the elements of X Help sym/sin.m 另外也可以通过在组件平台中调用演示模型(demo)来获得特殊帮助, 33数据交换系统 MATLAB提供了多种方法将数据从磁盘或剪贴板中读入 MATLAB工作空间。具 体的读写方法可依据用户的喜好以及数据的类型来选择。这里主要介绍文本数据的读 对于文本数据(ASCI)而言,最简单的读入方法就是通过 MATLAB的数据输入 向导( Import Wizard),也可以通过 MATLAB函数实现数据读入 例如,对于文本文件 test. txt: Mathmatics ang 89 下面通过上述两种方法将该文件数据读入 MATLAB工作空间,先介绍 MATLAB 数据交换系统对文本数据的识别。此时文件的前几行(此处为“ students’ scores”)将被 识别为文件头,文件头可以为一行或几行,也可以识别出数据的列头(此处为 English"、“ Chinese”、和“ Mathmatics”)和行头(此处为“wang”、“i”、“ zhang 和“zhao”),其余的为可分断数据(此处为“99”、“98”和“100”等 首先是通过数据输入向导编辑器读入数据,通过桌面平台上的【Fl】菜单中的 【 Import Data】选项打开输入向导编辑器,按向导提示进行操作完成整个文本数据的 输入,则用户可以在 MATLAB开发环境中使用该文本数据。 例如: >>whos Size Bytes Class 96 double array Grand total is 12 elements using 96 bytes
例如: >>help sin SIN Sine SIN(X) is the sine of the elements of X Overloaded methods Help sym/sin.m 另外也可以通过在组件平台中调用演示模型(demo)来获得特殊帮助。 3.3 数据交换系统 MATLAB 提供了多种方法将数据从磁盘或剪贴板中读入 MATLAB 工作空间。具 体的读写方法可依据用户的喜好以及数据的类型来选择。这里主要介绍文本数据的读 入。 对于文本数据(ASCII)而言,最简单的读入方法就是通过 MATLAB 的数据输入 向导(Import Wizard),也可以通过 MATLAB 函数实现数据读入。 例如,对于文本文件 test.txt: students’ scores English Chinese Mathmatics Wang 99 98 100 Li 98 89 70 Zhang 80 90 97 Zhao 77 65 87 下面通过上述两种方法将该文件数据读入 MATLAB 工作空间,先介绍 MATLAB 数据交换系统对文本数据的识别。此时文件的前几行(此处为“students’ scores”)将被 识别为文件头,文件头可以为一行或几行,也可以识别出数据的列头(此处为: “English”、“Chinese”、和“Mathmatics”)和行头(此处为“wang”、“li”、“zhang” 和“zhao”),其余的为可分断数据(此处为“99”、“98”、和“100”等)。 首先是通过数据输入向导编辑器读入数据,通过桌面平台上的【File】菜单中的 【Import Data】选项打开输入向导编辑器,按向导提示进行操作完成整个文本数据的 输入,则用户可以在 MATLAB 开发环境中使用该文本数据。 例如: >>whos Name Size Bytes Class Data 4 3 96 double array Grand total is 12 elements using 96 bytes