MATLAB是一个集成的开发环境,用户既可以编写程序,也可以实现图形绘制、文件管理、仿真调试等功能。随着版本的演化,其功能也日趋完善和全面。因此有必要简要介绍MATLAB的发展历程和编程环境。
MATLAB是一个功能强大的数学软件,MATLAB产品主要包括MATLAB与Simulink,MATLAB中有丰富的预定义函数和工具箱,可以用于数值分析、数值和符号计算、控制系统的设计仿真、数字图像处理、数字信号处理、通信系统仿真设计、财务与金融分析等多个领域的分析与计算工作。
MATLAB语言接近自然语言,简单易学,已成为科研和工程人员的必学软件。与其他计算机高级语言相比,MATLAB有着明显的优点。
1.简单易用
MATLAB是解释性语言,书写形式自由,变量不用定义即可直接使用。用户可以在命令窗口中输入命令直接计算表达式的值,也可以执行预先在M文件中写好的大型程序。MATLAB允许用户以数学形式的语言描述表达式,是一种类似“演算纸”的语言。它是用C语言开发的,流程控制语句几乎与C语言一致,有一定编程基础的人员掌握起来更为容易。
2.平台可移植性强
解释型语言的平台兼容性一般要强于编译型语言。MATLAB拥有大量的平台独立措施,支持Windows 98/2000/NT和许多版本的UNIX系统。用户在一个平台上编写的代码不需修改就可以在另一个平台上运行,为研究人员节省了大量的时间成本。
3.丰富的预定义函数
MATLAB提供了极为庞大的预定义函数库,提供了许多打包好的基本工程问题的函数,如求解微分方程、求矩阵的行列式、求样本方差等,都可以直接调用预定义函数完成。另外,MATLAB提供了许多专用的工具箱,以解决特定领域的复杂问题。所谓工具箱,是指一些编写好的函数,只要将函数路径设为MATLAB搜索路径,用户就可以通过函数名直接调用该函数。系统提供了信号处理工具箱、控制系统工具箱、图像处理工具箱等一系列解决专业问题的工具箱。用户也可以自行编写自定义的函数,将其作为自定义的工具箱。
4.以矩阵为基础的运算
MATLAB被称为矩阵实验室,其运算是以矩阵为基础的,如标量常数可以被认为是1×1矩阵,用户不需要为矩阵的输入、输出和显示编写一个关于矩阵的子函数。以矩阵为基础数据结构的机制减少了大量编程时间,将烦琐的工作交给系统来完成,使用户可以将精力集中于所需解决的实际问题。
5.强大的图形界面
MATLAB具有强大的图形处理能力,带有很多绘图和图形设置的预定义函数,可以用区区几行代码绘制复杂的二维和多维图形。MATLAB的GUIDE则允许用户编写完整的图形界面程序,在GUIDE环境中用户可以使用菜单栏、工具栏及图形界面所需的各种控件。
6.与其他语言有良好的对接性
MATLAB与其他编程语言如FORTRAN、C、BASIC等都可以实现方便的对接。例如,用户可以选择用C语言与MATLAB进行混合编程,对性能要求较高的部分用C语言来编写。也可以用一定手段在其他语言中调用MATLAB库函数,充分利用MATLAB矩阵运算的优点。
MATLAB的主要缺点是执行速度比其他高级语言要慢,这主要是因为MATLAB是解释型语言,没有经过编译产生可执行文件。有利必有弊,这恐怕是解释型语言方便易用所必然付出的代价。随着计算机性能的逐渐提高,这个缺点正在逐步弱化。另外,尽量少用循环,将数据结构向量化、矩阵化,尽量使用MATLAB预定义的函数,有助于提高MATLAB程序的性能。对于性能要求特别高的部分,可以考虑使用C语言等其他高级语言进行混合编程实现。
20世纪70年代末,美国新墨西哥大学(University of New Mexico)计算机系主任克里夫·莫勒尔(Cleve Moler)为了减轻学生编程的负担,独立编写了第一个版本的MATLAB(MatrixLaboratory,矩阵实验室)。这个版本的MATLAB只能进行简单的矩阵运算,如矩阵转置、计算行列式和本征值。1984年,杰克·李特(Jack Little)、克里夫·莫勒尔和斯蒂夫·班格尔特(Steve Bangert)合作成立了MathWorks公司,将MATLAB推向市场。MATLAB最初是由莫勒尔用FORTRAN编写的,李特和班格尔特花了约一年半的时间用C语言重新编写了MATLAB,并增加了一些新功能。C语言版面向MS-DOS系统的MATLAB 1.0第一份订单只售出了10份,而目前全球已有超过100万工程师和科学家在使用MATLAB。
经过近30年的发展,MATLAB已成为进行高效研究与开发的首选开发工具。MATLAB的各版本如表1-1所示。
表1-1 MATLAB版本沿革
续表
MATLAB 7.2以后,建造编号以年份来命名,2010年3月份推出的用a表示,9月份推出的用b表示。
下面以Windows XP系统下MATLAB R2010b的安装为例介绍MATLAB的安装方法。
(1)将MATLAB R2010b的安装光盘放入计算机中,光盘自动运行或双击打开“setup.exe”运行安装程序,跳过欢迎界面后,将会出现如图1-1所示的界面。
图1-1 MATLAB R2010b安装界面
(2)如果能够连接到网络,在安装过程中将会要求用户登录在MathWorks公司网站的账号,用户只要选择要安装的license即可,这是最简单的安装方法。如果不能连接到网络,用户应准备好FileInstallation Key和license文件。这里选择“Install without using the Internet”单选按钮,单击“Next”按钮,出现如图1-2所示的界面。
图1-2 安装协议
(3)接受license协议,选择“Yes”单选按钮,单击“Next”按钮,进入如图1-3所示的界面。
图1-3 输入File Installation Key
(4)在这里选择“I have the File Installation Key for my license”,输入准备好的File Installation Key,单击“Next”按钮继续,进入如图1-4所示的界面。
图1-4 典型安装或自定义安装
(5)确定选择典型安装还是自定义安装,这里选择“Typical”单选按钮,即典型安装,单击“Next”按钮,进入如图1-5所示的界面。
图1-5 设置安装路径
(6)设置MATLAB的安装路径,用户可以单击“Browse”按钮浏览目录,或直接输入安装路径名。注意,路径应不包含中文,只能包含英文或数字。单击“Next”按钮,如果输入的路径原先并不存在,会弹出如图1-6所示的对话框。
图1-6 确认对话框
(7)单击“Yes”按钮,进入如图1-7所示的界面。
图1-7 确认安装
(8)单击“Install”按钮,出现如图1-8所示的界面,这样,就开始安装了。
图1-8 MATLAB正在安装
(9)进度条显示为100%时,将会进入如图1-9所示的界面。
图1-9 MATLAB R2010b安装界面
(10)单击“Next”按钮,进入下一步,出现如图1-10所示的界面,开始激活MATLAB R2010b。
图1-10 激活MATLAB R2010b
(11)这里要勾选“Activate MATLAB”复选框,单击“Next”按钮继续,该窗口就会关闭,并出现如图1-11所示的界面。
图1-11 激活MATLAB
(12)由于第一步选择不在线安装,所以这里应选择“Activatemanually without the Internet”单选按钮。单击“Next”按钮,进入如图1-12所示的界面。
图1-12 指定license文件
(13)单击“Browse”按钮,选择准备好的license文件,单击“Next”按钮,进入如图1-13所示的界面。
图1-13 激活完成
(14)单击“Finish”按钮,完成MATLAB R2010b的安装与激活。
1.启动与退出MATLAB
MATLAB R2010b安装完成后,如果未在桌面上创建快捷方式,用户可找到MATLAB\R2010b\bin目录下的matlab.exe文件,在其上下文菜单中选择“发送到”→“桌面快捷方式”命令,即可在桌面上创建快捷方式。
双击MATLAB的桌面快捷方式,或在“开始”菜单中选择MATLAB命令,即可启动MATLAB R2010b。启动MATLAB R2010b后,将进入MATLAB集成开发环境,如图1-14所示。
图1-14 MATLAB集成开发环境
MATLAB开发环境包括MATLAB主窗口、命令窗口(Command Window)、工作空间(Workspace)、命令历史窗口(Command History)和当前目录窗口(Current Folder)。
MATLAB的退出有3种常见的方法:
■ 单击MATLAB主窗口右上方的关闭按钮。
■ 在主窗口的“File”菜单中选择“Exit MATLAB”命令或当MATLAB获得焦点时使用【Ctrl+Q】快捷键。
■ 在命令窗口输入“exit”或“quit”命令。
2.MATLAB命令窗口
命令窗口是MATLAB的主要交互窗口,用于输入命令和显示除图形外的所有结果。命令窗口以“>>”为提示符,用户在提示符后输入命令并按【Enter】键,系统就会解释该命令并显示执行结果,如图1-15所示。
图1-15 MATLAB命令窗口
一行一般只输入一条命令。如果在一行中输入多条命令,则应用逗号分隔,若命令带有分号,则逗号可以省略。如果一行很长,也可以分行书写,在一行的最后加上续行符(3个小黑点)并按【Enter】键,即可在下一行继续输入,系统会将其视为同一逻辑行,例如:
注意第二行,在MATLAB中,分号表示阻止直接输出结果,“a=1”用逗号分隔,“b=2”后用分号结束,因此系统直接输出了a的结果而没有输出b的结果。
3.工作空间窗口
工作空间是MATLAB用于保存各种变量的空间,在工作空间窗口中,用户可以查看、编辑、导入、保存和删除变量。工作空间窗口直接列出了变量的名称、大小和类型,如图1-16所示。
图1-16 工作空间窗口
4.当前目录窗口
当前目录是MATLAB运行文件时的目录,函数必须处在MATLAB搜索路径或当前路径下,才可以被调用。当前目录窗口如图1-17所示。
图1-17 当前目录窗口
在当前目录窗口中,用户可以像在资源管理器中一样对文件夹和文件进行操作,也可以改变当前目录的路径。
5.命令历史窗口
命令历史窗口记录了用户输入过的命令,供用户查看。双击某一条历史命令,可以在命令窗口重新执行该命令,省去了重新输入的烦琐操作。用户也可以利用上下文菜单清空部分或全部历史命令,如图1-18所示。
图1-18 命令历史窗口
在MATLAB中,搜索路径是一个非常重要的概念。通常,在执行命令窗口或M文件的某一条命令时,对于非系统关键字的标识符,系统会按照一定顺序寻找相关文件以确定该标识符的含义。搜索的顺序如下:
(1)检查该命令是不是一个变量。
(2)检查该命令是不是一个预定义函数。
(3)检查该命令是不是当前目录下的M文件。
(4)检查该命令是不是MATLAB搜索路径中其他路径下的M文件。
按照这个顺序,用户要使用自定义的函数或执行自定义的M脚本文件,有两种方式:将文件放在MATLAB当前目录下或放在MATLAB搜索路径下。设置搜索路径的方法如下:
■ 使用path命令。如将C:\func加入搜索路径,可以在命令窗口输入path(path,'c:\func')。直接输入path并按【Enter】键,可以在命令窗口打印出当前搜索路径包含的所有路径。
■ 使用对话框进行设置。在“File”菜单中选择“Set Path”命令,或在命令窗口中输入“pathtool”并按【Enter】键,可以打开“Set Path”窗口,如图1-19所示。单击“AddFolder”按钮可以添加一个目录作为搜索路径,单击“Addwith Subfolders”按钮可以加入指定目录及其以下的所有子目录作为搜索路径。设置完成以后单击“Save”按钮保存就可以关闭对话框了。
图1-19 “Set Path”窗口
值得一提的是,由于在搜索时,先搜索工作空间中的变量,因此变量有可能覆盖掉系统自带的或用户自定义的函数,例如:
将sin赋值为3.4后,sin即成为工作空间中的double型变量,因此,再次输入y=sin(x)命令时,系统就报错了。因此在使用MATLAB时,应注意变量名不应与系统预定义函数或用户自定义函数同名。
类似地,系统先搜索当前目录,再搜索其他目录,因此也应注意函数名称不可同名,否则极易发生错误。