1.1 MATLAB概述

MATLAB译为矩阵实验室,最初是用来提供通往LINPACK和EISPACK矩阵的软件包接口。后来,MATLAB渐渐发展为通用的科技计算图形交互系统和程序语言。

1.1.1 MATLAB简介

MATLAB的基本数据单位是矩阵,它的指令表达与数学工程中常用的习惯形式十分相似。例如,矩阵方程Ax=b在MATLAB中被写成A*x=b,而若要通过A和b求解x,那么只要写成x=b\A就完全不需要对矩阵的乘法和求逆进行编程。因此,用MATLAB解决计算问题比用C、Fortran等语言简捷得多。

MATLAB发展到现在已经成为一个系列产品,包括MATLAB主程序包和各种可选的工具包。主程序包中有数百个核心内部函数。迄今为止,所有的工具包又可以分为两类,即功能性工具包和学科性工具包。

功能性工具包主要用来扩充MATLAB的符号计算功能、图形建模仿真功能、文字处理功能及硬件实时交互功能。功能性工具包可以用于多种学科。

学科性工具包的专业性比较强,如控制工具包(Control Toolbox)、信号处理工具包(Signal Processing Toolbox)、通信工具包(Communication Toolbox)等都属于学科性工具包。

开放性是MATLAB最重要且最受欢迎的特点。除了内部函数,所有的MATLAB主程序包文件和工具包文件都是可读、可改的源文件。用户可以通过对源文件进行修改或加入自己的编写文件来构成新的专用工具包。

MATLAB已经经过用户的多年考验。在欧美发达国家或地区,MATLAB已经成为“应用线性代数”、“自动控制理论”、“数理统计”、“数字信号处理”、“时间序列分析”和“动态系统仿真”等高级课程的基本教学工具,成为攻读学位的本科生、硕士生、博士生必须掌握的基本技能。在设计研究单位和工业部门,MATLAB被广泛用于研究和解决各种具体的工程问题。

MATLAB的强大功能从本质上来说可以分为以下3类。

· 内部函数。

· 系统附带的各种工具包中的M文件所提供的大量函数。

· 用户自己增加的函数。

这个特点是其他许多软件平台无法比拟的。

MATLAB提供的通用数理类函数包括如下几类。

· 基本数学函数。

· 特殊函数。

· 基本矩阵函数。

· 特殊矩阵函数。

· 矩阵分解和分析函数。

· 数据分析函数。

· 微分方程求解。

· 多项式函数。

· 非线性方程及其优化函数。

· 数值积分函数。

· 信号处理函数。

MATLAB还开发了相应的MATLAB专业工具箱函数供用户直接使用。这些工具箱应用的算法是开放的、可扩展的,用户不仅可以查看其中的算法,还可以针对一些算法进行修改,甚至允许用户开发自己的算法,以扩充工具箱的功能。

目前,MATLAB的工具箱有40多个,涵盖了数据获取、科学计算(如偏微分方程、最优化、数理统计、样条函数、神经网络等)、控制系统设计与分析、数字信号处理、数字图像处理、金融财务分析及生物遗传工程等专业领域。

Simulink是基于MATLAB的框图设计环境,可以用来对各种动态系统进行建模、分析和仿真,它的建模范围非常广泛,可以针对任何能够用数学描述的系统进行建模,如航空航天动力学系统、卫星控制制导系统、通信系统、船舶及汽车等,其中包括连续、离散、条件执行、事件驱动、单速率、多速率和混杂系统等。

Simulink不仅提供了系统框图模型的图形界面,还提供了丰富的功能模块及不同的专业模块集合,利用Simulink几乎可以做到不输入任何代码即可完成整个动态系统的建模工作。

Stateflow是一个交互式的设计工具,它基于有限状态机的理论,可以用来对复杂的事件驱动系统进行建模和仿真。Stateflow与Simulink和MATLAB紧密集成,可以将Stateflow创建的复杂控制逻辑有效地结合到Simulink的模型中。

1.1.2 MATLAB的语言平台

MATLAB支持许多操作系统,提供了大量的平台独立措施。在一个平台上编写的程序,在其他平台上也可以正常运行;在一个平台上编写的数据文件,在其他平台上也可以编译。因此,用户可以根据需要把MATLAB编写的程序移植到新平台。

任何一个MATLAB程序的基本组成单元都是数组。数组是一组数据值的集合,这些数据被编上行号和列号,拥有唯一的名称。

数组中的单个数据可以通过带有圆括号的数组名访问,括号内有这个数据的行标和列标,中间用逗号隔开。标量也被MATLAB当作数组,只不过只有一行和一列。第 5 章将介绍如何创建和操作MATLAB数组。

当MATLAB运行时,有多种类型的窗口,有的用于接收命令,有的用于显示信息。其中,命令行窗口、图像窗口、编辑/调试窗口是3个比较重要的窗口,它们的作用分别为输入命令、显示图形、允许使用者创建和修改MATLAB程序。

当 MATLAB 程序启动时,会弹出 MATLAB 桌面窗口。默认的 MATLAB 桌面结构如图1-1所示。

img

图1-1 默认的MATLAB桌面结构

在集成开发环境下,MATLAB集成了管理文件、变量和应用程序的许多编程工具。