《MATLAB信号处理超级学习手册》——第1章 MATLAB入门 1.1 MATLAB概述

本节书摘来自异步社区《MATLAB信号处理超级学习手册》一书中的第1章,第1.1节,作者:MATLAB技术联盟 , 史洁玉著,更多章节内容可以访问云栖社区“异步社区”公众号查看

第1章 MATLAB入门

MATLAB是一种用于数值计算、可视化及编程的高级语言和交互式环境。使用 MATLAB,用户可以分析数据、开发算法、创建模型和应用程序。

MATLAB借助编程、工具和内置数学函数,可以探求多种方法,比电子表格或其他传统编程语言更快地求取结果。它是一种功能强大的科学计算软件。在使用之前,读者应该对它有一个整体的了解。本章主要介绍MATLAB的基本知识,如主要特点、系统安装、基本操作等。

1.1 MATLAB概述

MATLAB信号处理超级学习手册
MATLAB是由美国MathWorks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析 、矩阵计算 、科学数据可视化以及非线性 动态系统的建模 和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算 的众多科学领域 提供了一种全面的解决方案。

1.1.1 什么是MATLAB
MATLAB提供了一个高性能的数值计算和图形显示的科学和工程计算软件环境。这种易于使用的MATLAB环境,是由数值分析、矩阵运算、信号处理和图形绘制等组成。在这种环境下,问题和解答的表达形式(程序)几乎和它们的数学表达式完全一样,而不像传统的编程那样繁杂。

MATLAB的基本数据单位是矩阵 ,它的指令表达式 与数学 、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C、FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使其成为一个强大的数学软件 。

MATLAB在新的版本中也加入了对C 、FORTRAN 、C++ 、Java的支持。用户可以直接调用它们,也可以将自己编写的实用程序导入到MATLAB函数 库中方便自己以后调用。此外,许多的MATLAB爱好者还编写了一些经典的程序,用户可以直接进行下载使用。它的主要特性包括:

(1)界面用于数值计算、可视化和应用程序开发的高级语言。

(2)可实现迭代式探查、设计及问题求解的交互式环境。

(3)用于线性代数、统计、傅里叶分析、筛选、优化、数值积分以及常微分方程求解的数学函数。

(4)用于数据可视化的内置图形以及用于创建自定义绘图的工具。

(5)用于改进代码质量和可维护性,并最大限度地发挥性能的开发工具。

(6)用于构建自定义图形界面应用程序的工具。

(7)可实现基于MATLAB的算法与外部应用程序和语言(如C、Java、.NET以及Microsoft Excel)集成的函数。

MATLAB的一个重要特色就是其工具箱已经成为一个系列产品——MATLAB主工具箱和各种工具箱(Toolbox )。

功能型工具箱主要用来扩充MATLAB的数值计算、符号运算、图形建模仿真、文字处理以及与硬件实时交互等功能,能够用于多种学科。领域型工具箱是学科专用工具箱,其专业性很强,比如控制系统工具箱(Control System Toolbox)、信号处理工具箱(Signal Processing Toolbox)、财政金融工具箱(Financial Toolbox)等。

1.1.2 MATLAB语言特点
MATLAB是所有MathWorks公司产品的基石,它包括了数值计算2-D和3-D图形、语句以及单一易使用环境下的语言能力。MATLAB系统主要由5部分构成:MATLAB语言、MATLAB工作环境、MATLAB图形处理、MATLAB数学函数库、MATLAB应用编程接口(API)。

MATLAB具有用法简单、灵活、程式结构性强、延展性好等优点,已经逐渐成为科技计算、视图交互系统和程序中的首选语言工具。特别是它在线性代数、数理统计、自动控制、数字信号处理、动态系统仿真等方面表现突出,已经成为科研工作人员和工程技术人员进行科学研究和生产实践的有利武器。

1.以矩阵和数组为基础的运算
MATLAB是一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入输出和面向对象编程特点。MATLAB以矩阵为基础,不需要预先定义变量和矩阵(包括数组)的维数,可以方便地进行矩阵的算术运算、关系运算和逻辑运算等。而且MATLAB有特殊矩阵专门的库函数,可以高效地求解诸如信号处理、图像处理、控制等问题。

2.语言简洁、使用方便
MATLAB程序书写形式自由,被称为“草稿式”语言,这是因为MATLAB函数名和表达更接近人们书写计算公式的思维表达方式,编写MATLAB程序犹如在草稿纸上排列公式与求解问题,因此可以快速地验证工程技术人员的算法。

此外,MATLAB还是一种解释性语言,不需要专门的编译器。具体地说,MATLAB运行时可直接在命令行输入MATLAB语句,系统立即进行处理,完成编译、链接和运行的全过程。利用丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。

【例1-1】MATLAB求解下列方程,并求解矩阵A的特征值。Ax=b,其中:

A= 32 13 45 67

  23 79 85 12

  43 23 54 65

  98 34 71 35

b= 1

  2

  3

  4

解为:x=Ab,设A的特征值组成的向量e,e=eig(A)。

只需要在MATLAB窗口中输入如下几行代码:

A= [32 13 45 67;23 79 85 12;43 23 54 65;98 34 71 35];
b=[1;2;3;4];
x=A\b
x=
  0.1809
  0.5128
  -0.5333
  0.1862
e=eig(A)
e=
  193.4475
  56.6905
  -48.1919
  -1.9461

可见MATLAB的程序极其简短。更为难能可贵的是,MATLAB具有一定的智能水平,比如上面的解方程,MATLAB会根据矩阵的特性选择方程的求解方法,所以用户根本不用怀疑MATLAB的准确性。

3.强大的科学计算和数据处理能力
MATLAB是一个包含大量计算算法的集合,拥有600多个工程中要用到的数学运算函数,可以方便地实现用户所需的各种计算功能。

函数中所使用的算法都是科研和工程计算中的最新研究成果,而且经过了各种优化和容错处理。在通常情况下,可以用它来代替底层编程语言,如C和C++。在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。

MATLAB的这些函数集包括从最简单最基本的函数到诸如矩阵、特征向量、快速傅里叶变换的复杂函数。函数所能解决的问题大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程组的求解、符号运算、傅里叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。

4.强大的图形处理功能
MATLAB具有非常强大的以图形化显示矩阵和数组的能力,同时它能给这些图形增加注释并且可以对图形进行标注和打印。

MATLAB的图形技术包括二维和三维的可视化、图象处理、动画等高层次的专业图形的高级绘图函数,例如图形的光照处理、色度处理以及四维数据的表现等,又包括一些可以让用户灵活控制图形特点的低级绘图命令,可以利用MATLAB的句柄图形技术创建图形用户界面。

同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。另外新版本的MATLAB还着重在图形用户界面(GUI)的制作上做了很大的改善,对这方面有特殊要求的用户也可以得到满足。

5.应用广泛的模块集合——工具箱
MATLAB的一个重要特色就是具有一套程序扩展系统和一组称之为工具箱的特殊应用子程序,每一个工具箱都是为某一类学科专业和应用而定制的。

MATLAB包含两个部分,核心部分和各种可选的工具箱。核心部分中有数百个核心内部函数。其工具箱又分为两类,功能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能、图示建模仿真功能、文字处理功能以及与硬件实时交互功能,而学科性工具箱专业性比较强,如Control Toolbox、Signal Processing Toolbox、Communication Toolbox等。

此外,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。

目前,MATLAB已经把工具箱延伸到了科学研究和工程应用的诸多领域,如数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI控制、健壮控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、DSP与通信、电力系统仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。

6.具有可扩充性强的应用程序接口
MATLAB不仅有着丰富的库函数,在进行复杂的数学运算时可以直接调用,而且用户还可以根据需要方便地编写和扩充新的函数库。

通过混合编程,用户可以方便地在MATLAB环境中调用其他用FORTRAN或者C语言编写的代码。

7.源程序的开放性
开放性也许是MATLAB最受人们欢迎的特点。除内部函数以外,所有MATLAB的核心文件和工具箱文件都是可读可改的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱。

8.实用的程序接口和发布平台
新版本的MATLAB可以利用MATLAB编译器和C/C++数学库和图形库,将自己的MATLAB程序自动转换为独立于MATLAB运行的C和C++代码,允许用户编写可以和MATLAB进行交互的C或C++语言程序。另外,MATLAB网页服务程序还容许在Web应用中使用自己的MATLAB数学和图形程序。

1.1.3 MATLAB系统
MATLAB系统主要包括5个部分:桌面工具和开发环境、数字函数库、语言、图形处理与外部接口。其中,桌面工具包括MATLAB桌面和命令窗口,编辑器,调试器,代码分析器和用于浏览帮助、工作空间、文件的浏览器。

MATLAB的函数库包括大量的算法,从初等函数到复杂的高等函数。MATLAB语言是一种基于矩阵和数组的高级语言,具有程序流控制、函数、数据结构、输入输出和面向编程等特色。在图形处理中,MATLAB具有方便的数据可视化功能。同时,MATLAB语言具有能够和一些高级语言进行交互的函数库。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值