1.2 MATLAB基础概述
1.2.1 MATLAB的影响
MATLAB源于Matrix Laboratory,即矩阵实验室,是由美国Mathworks公司发布的主要面对科学计算、数据可视化、系统仿真以及交互式程序设计的高科技计算环境。自1984年该软件推向市场以来,历经30多年的发展与竞争,现已成为适合多学科、多种工作平台的功能强大的大型软件。MATLAB应用广泛,其中包括信号处理和通信、图像和视频处理、控制系统、测试和测量、计算金融学及计算生物学等众多应用领域。在国际学术界,MATLAB已经被确认为是准确、可靠的科学计算标准软件,在许多国际一流学术期刊上都可以看到MATLAB的应用文章。在欧美各高等院校,MATLAB已经成为线性代数、数字信号处理、金融数据分析、动态系统仿真等课程的基本教学工具,成为学生必须掌握的基本技能。MATLAB软件的美国官方网站为http://www.mathworks.com,中国网站为http://cn.mathworks.com/。
1.2.2 MATLAB的特点与主要功能
自2006年以来,MATLAB在每年的3月与9月推出当年的a版本与b版本。在MATLAB(2014a)以后各版本中,只要在当前版本的命令行窗口中输入:ver,就可以看到当前版本的信息以及各种工具箱的版本号。每次推出的新版本都比前一个版本多一些新功能,可看到MATLAB的功能越来越强大。以下列举MATLAB(2014a)版本的主要功能特点,且本书中的程序都已通过MATLAB(2014a)中文版本的测试计算。
1)MATLAB是一个交互式软件系统,输入一条命令,立即就可以得出该命令的结果。
2)强大的数值计算能力。以矩阵作为基本单位,但无需预先指定维数(动态定维);按照IEEE的数值计算标准进行计算;提供丰富的数值计算函数,方便了用户与提高了计算效率;命令与数学中的符号、公式非常接近,可读性强,容易掌握。
3)数据图示功能。提供了丰富的绘图命令,能实现点、线、面与立体的一系列可视化操作。
4)编程功能。具有程序结构控制、函数调用、数据结构、输入输出、面向对象等程序语言特征,而且简单易学、编程效率高。
5)Notebook功能。Notebook实现Word和MATLAB无缝连接,从而为专业科技工作者创造了融科学计算、图形可视、文字处理于一体的高水准环境。
6)丰富的工具箱。工具箱是用MATLAB的基本语句编成的各种子程序集,用于解决某一方面的专门问题或实现某一类的新算法。工具箱可分为功能型和领域型工具箱。功能型工具箱主要用来扩充MATLAB的符号计算功能、图形建模仿真功能、文字处理功能以及与硬件实时交互功能,能用于多种学科。领域型工具箱专业性很强,如统计工具箱(Statistics Toolbox)、优化工具箱(Optimization Toolbox)、曲线拟合工具箱(Curve Fitting Toolbox)、神经网络工具箱(Neural Network Toolbox)、金融工具箱(Financial Toolbox)、控制系统工具箱(Control System Toolbox)、信号处理工具箱(Signal Processing Toolbox)等。
1.2.3 MATLAB主界面与常用窗口
有以下两种MATLAB启动方法:在安装有MATLAB的计算机上双击Windows桌面上的快捷图标,或从“开始”菜单的“程序”子菜单中选择“MATLABMATLAB 2014a”。
通常情况下,MATLAB的主界面(如图1-1所示)由6部分组成,即主页工具栏、命令行窗口、工作区窗口、命令历史记录窗口、当前文件夹窗口以及当前已选择的文件详细信息。
图1-1 MATLAB R2014a主界面
1)主页工具栏。主页工具栏分若干个功能模块,包括文件的新建、打开、查找等;数据的导入、保存工作区、新建变量等;代码分析、程序运行、命令清除等;窗口布局;预设MATLAB部分工作环境、设置当前工作路径;系统帮助;附加功能等。
例如,选择主页工具栏的“新建脚本”,系统弹出编辑器窗体,该窗体结构和主窗口结构类似,其中在编辑器窗口中实现脚本文件的编写、调试等(如图1-2所示),且在编辑过程中支持右键下拉菜单,具有Windows一般应用程序所具有的“复制”、“粘贴”、“全选”等功能。
2)命令行窗口(Command Window)。命令行窗口是对MATLAB进行操作的主要载体,默认情况下启动MATLAB时就会打开命令行窗口,显示形式如图1-1所示。其主要功能为数值计算、函数参数设定、函数调用及其结果输出。一般来说,MATLAB的所有函数和命令都可以在命令行窗口中执行。
例如,在命令行窗口中输入“sin(pi/5)”,然后按“Enter”键,则会得到输出结果“ans=0.5878”(如图1-3所示)。图中符号“〉〉”所在的行可输入命令,没有符号“〉〉”的行显示结果。
图1-2 编辑器窗体
图1-3 命令行窗口中输入命令
注意:在MATLAB命令行操作中,有一些键盘按键可以提供特殊而方便的编辑操作。比如“↑”可用于调出前一个命令行,“↓”可调出后一个命令行,这样避免了重新输入的麻烦。当某命令记忆不清时,输入若干首字母并按下“Tab”键,可用于联想该命令的提示。
图1-4 命令历史记录窗口下拉菜单
3)命令历史记录(Command History)窗口。该窗口记录着用户每一次开启MATLAB的时间,以及每一次开启MATLAB后,在MATLAB指令窗口中运行过的所有指令行,窗口右上角的下拉式菜单提供了不同的快捷操作命令(如图1-4所示)。这些指令行记录可以被复制到指令窗口中再运行,从而减少了重新输入的麻烦。选中该窗口中的任一指令记录,然后单击鼠标右键,则可根据菜单进行相应操作。或者双击某一行命令,也可在命令行窗口中执行该命令(如图1-5所示)。
4)工作区(Workspace)窗口。在工作区窗口中将显示所有目前保存在内存中的MATLAB变量的变量名及其对应的数据结构、字节数以及类型,而不同的变量类型分别对应不同的变量名图标,窗口右上角的下拉式菜单提供了不同的快捷操作命令(如图1-6所示)。选中一个变量,单击鼠标右键则可根据菜单进行相应的操作(如图1-7所示)。
图1-5 命令历史记录窗口的
右键操作
图1-6 工作区窗口下拉菜单
图1-7 工作区窗口的操作
5)当前文件夹(Current Directory)窗口。在当前文件夹窗口中可显示或改变当前文件夹,还可以显示当前文件夹下的文件,包括文件名、文件类型、最后修改时间以及该文件的说明信息等,并提供搜索功能(如图1-8所示)。MATLAB只执行当前目录或搜索路径下的命令、函数与文件。
当用户在MATLAB命令行窗口输入一条命令后,MATLAB按照一定次序寻找相关的文件。基本的搜索过程是:①检查该命令是不是一个变量;②检查该命令是不是一个内部函数;③检查该命令是否为当前目录下的M文件;④检查该命令是否是MATLAB搜索路径中其他目录下的M文件。
用户可以将自己的工作目录列入MATLAB搜索路径,从而将用户目录纳入MATLAB系统统一管理。用对话框设置搜索路径的操作过程是:①在主页工具条中选择“设置路径”,将出现搜索路径设置对话框。②通过“添加文件夹”或“添加并包含子文件夹”按钮将指定路径添加到搜索路径列表中。③在修改完搜索路径后,需要将其保存。
6)图形(Figure)窗口。在运行含有绘图命令的程序时,会产生一个与命令行窗口隔离的图形窗口,并在该窗口中绘制图形(见图1-9所示)。图形窗口与其他窗口类似,有菜单栏与工具栏,能实现图形的编辑、修饰、存储等功能。例如:
图1-8 当前文件夹浏览器窗口
图1-9 图形窗口及曲线
t=0 :pi/100:2*pi;
y=sin(t);
plot(t,y) %绘图命令plot,绘制正弦曲线
grid on
1.2.4 MATLAB的联机帮助
MATLAB和其他高级语言一样,具有完善的帮助系统。通过主页工具栏上的帮助按钮“?”,按下该按钮将打开帮助浏览器(如图1-10所示),在“搜索文档”栏内输入需要查询的命令等,即可获得相关命令的帮助文档。也可将光标放在命令行窗口的提示符“〉〉”右边,按下键盘上的“F1”键,会弹出悬浮的帮助浏览器窗口。
图1-10 帮助导航/浏览器窗口
如果知道所需函数的名称(例如,rand功能为生成在\[0,1\]区间上服从均匀分布的随机数、正弦函数sin),但不知道具体的函数语法,可以使用以下三种方法获取帮助。
1)在命令行窗口或编辑器窗口中,将光标放置在函数名上,按下“F1”键,即可获得函数的说明文档。例如,获取“rand”的帮助如图1-11所示。
2)在命令行窗口中,输入“doc+函数名”的方法查看说明文档。
例如,输入“doc rand”,结果打开帮助浏览器窗口如图1-12所示。
图1-11 按“F1”键获取帮助
图1-12 输入“doc+函数名”获取帮助
3)在命令行窗口中,输入“help+函数名”的方法查看简要说明,此时说明信息在命令行窗口中出现,通过超链接可查看详细帮助信息。
例如,输入“help sin”,则输出简要帮助信息如下:
sin - Sine of argument in radians
This MATLAB function returns the sine of the elements of X.
Y = sin(X)
sin 的参考页
另请参阅 asin, asind, sind, sinh
名为 sin 的其他函数
fixedpoint/sin, symbolic/sin
(注:带下划线的为超链接提示。)
以上三种方法获得的帮助信息主要内容为相关函数的功能、使用方法、输入参数与输出参数、使用示例以及函数的算法说明,比如算法来源于哪篇论文等信息。另外,MATLAB支持模糊查询,用户只需要输入命令的前几个字母,然后按“Tab”键,系统就会列出所有以这几个字母开头的命令。
1.2.5 工具箱及其在线帮助
MATLAB有丰富的工具箱,每个工具箱的使用功能都可获得系统的在线帮助。MATLAB数据分析常用到的工具箱主要有:统计工具箱、优化工具箱、曲线拟合工具箱、神经网络工具箱等。
统计工具箱可以对数据进行组织、分析和建模;提供与统计分析、机器学习相关的算法以及工具。用户可以使用回归以及分类分析来进行预测建模、生成随机序列(蒙特卡罗模拟),同时使用统计分析画图工具可以对数据进行前期的探索研究或者进行假设性检验。在分析多维数据时,统计工具箱可以通过连续特征选择、主成分分析、正规化和收缩、偏最小二乘回归分析法使用户筛选出对模型影响最主要的变量。该工具箱同时还提供有监督、无监督的机器学习算法,包括支持向量机(SVM)、决策树、K均值聚类、分层聚类、K近邻聚类搜索、高斯混合、隐马尔科夫模型等。
在帮助浏览器的主页面上选择统计工具箱(Statistics Toolbox)项,进入如图1-13所示的帮助页面。该页面分两栏,左栏中列举了统计功能的条目,右栏中列举了统计功能条目下的详细功能。
图1-13 统计工具箱帮助系统
左栏中的统计功能如下:
①探索性数据分析;
②概率分布;
③假设检验;
④回归分析和方差分析;
……
若在右侧栏中选择实验数据分析(Exploratory Data Analysis),则出现以下功能列举:
①数据导入导出;
②数据类型;
③描述性统计;
④统计可视化;
……
熟练使用MATLAB帮助查询,将大大提高使用MATLAB的效率与编程速度。
优化工具箱主要提供用于在满足给定的约束条件时寻找最优化的解的相关函数,主要包含线性规划、混合整数线性规划、二次规划、非线性最优化、非线性最小平方问题的求解函数。在该工具箱中,用户可以针对连续型、离散型问题寻求最优解决方法,使用权衡分析法进行分析,或者在算法和应用中融合多种优化方法,从而达到较好的分析效果。进入优化工具箱在线帮助系统的界面如图1-14所示。
图1-14 优化工具箱帮助系统
曲线拟合工具箱提供了用于拟合曲线和曲面数据的应用程序和函数。使用该工具箱可以执行探索性数据分析、预处理和后处理数据、比较候选模型、删除偏值。可以使用附带的线性和非线性模型库进行回归分析,也可以指定自行定义的方程式。该库提供了优化的解算参数和起始条件,以提高拟合质量。该工具箱还提供非参数建模方法,比如样条、插值和平滑。在创建一个拟合之后,可以运用多种后处理方法进行绘图、插值和外推,估计置信区间,计算积分和导数。进入曲线拟合工具箱在线帮助系统的界面如图1-15所示。
神经网络工具箱提供的函数以及应用可以用于复杂的、非线性系统的建模。它不仅支持前馈监督式学习、径向基和动态网络,同时还支持组织映射和竞争层形式的非监督式学习。利用该工具箱,用户可以创建、训练、可视化和模拟仿真神经网络,可以进行分类、回归、聚类、降维、时间序列预测、动力系统建模与控制。在处理海量数据时,还可以考虑使用数据分布式以及分布式计算功能、图形处理器(GPU)功能、集群计算以及并行计算工具箱。进入神经网络工具箱在线帮助系统的界面如图1-16所示。
图1-15 曲线拟合工具箱帮助系统
图1-16 神经网络工具箱帮助系统