MATLAB R2016a完全自学一本通(升级版)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-09-10 01:56:10

点击下载

作者:刘浩

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

MATLAB R2016a完全自学一本通(升级版)

MATLAB R2016a完全自学一本通(升级版)试读:

前言

MATLAB R2016a是2016年最新发行的MATLAB版本,它为数据分析与处理提供了强大的工具。目前,MATLAB已经在很多领域取得了成功应用。在这些领域的成功应用表明,MATLAB所代表的数据分析处理手段在科学、工程等方面将发挥重要的作用。

本书针对MATLAB R2016a在部分与数学高度相关领域内的应用,引导读者掌握MATLAB的应用。

1.本书特点

● 由浅入深,循序渐进:本书以初、中级读者为对象,首先从MATLAB的基础知识讲起,辅以MATLAB在工程中的应用案例,帮助读者尽快掌握MATLAB进行科学计算及工程分析的技能。

● 步骤详尽,内容新颖:本书结合作者多年MATLAB使用经验与实际工程应用案例,对MATLAB软件的使用方法与技巧进行详细讲解。本书内容新颖,讲解过程辅以相应的图片,使读者在阅读时一目了然,从而快速掌握书中所讲内容。

● 实例典型,轻松易学:通过学习实际工程应用案例的具体操作是掌握MATLAB最好的方式。本书通过应用案例,透彻、详尽地讲解了MATLAB在各方面的应用。

2.本书内容

本书分为4部分共24章,面向MATLAB的初、中级读者。在介绍MATLAB R2016a集成环境的基础上,对MATLAB使用中常用的知识和工具进行详细的介绍,书中各章均提供大量有针对性的算例,供读者实战练习。(1)第1~5章为基础部分,讲解MATLAB R2016a概述、MATLAB基础知识、数组与矩阵、MATLAB编程基础及数据可视化等。

第1章:MATLAB R2016a概述

第2章:MATLAB基础知识

第3章:数组与矩阵

第4章:MATLAB编程基础

第5章:数据可视化(2)第6~10章为数学应用部分,讲解数据分析、符号数学计算和概率统计等。

第6章:数据分析

第7章:符号数学计算

第8章:概率统计

第9章:数学建模函数

第10章:经典智能算法(3)第11~19章为工程应用部分,讲解偏微分方程、优化、图像处理、信号处理、小波分析、神经网络等工具箱,Simulink仿真基础及应用,Stateflow建模与应用等。

第11章:偏微分方程工具箱

第12章:优化工具箱

第13章:图像处理工具箱

第14章:信号处理工具箱

第15章:小波分析工具箱

第16章:Simulink仿真基础

第17章:Simulink仿真应用

第18章:Stateflow建模与应用

第19章:神经网络工具箱(4)第20~24章为知识拓展部分,讲解句柄图形对象、图形用户界面、文件读取I/O、MATLAB编译器和外部接口应用介绍等内容。由于篇幅受限,此部分内容为电子书形式,请到http://www.fecit.com.cn/files/download/30090.rar下载。

第20章:句柄图形对象

第21章:图形用户界面

第22章:文件读取I/O

第23章:MATLAB编译器

第24章:外部接口应用介绍

3.读者对象

本书适合于MALTAB初学者和期望提高MATLAB数据分析及Simulink建模仿真工程应用能力的读者,具体说明如下:

★ 初学MATLAB的技术人员

★ 广大科研工作人员

★ 大中专院校的教师和在校生

★ 相关培训机构的教师和学员

★ 参加工作实习的“菜鸟”

★ MATLAB爱好者

4.读者服务

为了方便解决本书疑难问题,读者在学习过程中遇到与本书有关的技术问题,可以发送邮件到邮箱caxart@126.com,或者访问博客http://blog.sina.com.cn/caxart,编者会尽快给予解答,我们将竭诚为您服务。

5.本书作者

本书由刘浩、韩晶编著,其中第1~8章、第17~24章由刘浩编写,第9~16章由韩晶编写,另外丁金滨、白明辉、吕小军、武立军、张辉、丁学英、王伟、何嘉扬、徐玉霞、王淑明、王俊峰、王菁、白羽为本书的编写提供了大量的素材及技术支持,在此一并表示感谢。

虽然作者在本书的编写过程中力求叙述准确、完善,但由于水平有限,书中欠妥之处在所难免,希望读者和同仁能够及时指出,共同促进本书质量的提高。

最后再次希望本书能为读者的学习和工作提供帮助!编者第1篇第1章 MATLAB R2016a概述知识要点

MATLAB R2016a是MathWorks公司发布的最新版的集算法开发、数据可视化、数据分析及数值计算于一体的高级技术计算语言和交互式环境。本章将介绍MATLAB R2016a的最新特性、MATLAB界面功能及如何对界面的各部分进行操作。1.1 MATLAB R2016a简介

MathWorks公司创立于1984年,总部位于美国马萨诸塞州内迪克,在全球15个国家有2 200名员工,是领先的为工程师和科学家提供数学计算软件的供应商,旗下的产品包括MATLAB产品家族、Simulink产品家族及PolySpace产品家族。1.1.1 MathWorks及其产品概述

MATLAB是矩阵实验室(Matrix Laboratory)的简称,是一种用于算法开发、数据可视化、数据分析及数值计算的高级技术计算语言和交互式环境。MATLAB的应用范围非常广,包括信号和图像处理、通信、控制系统设计、测试和测量、财务建模和分析,以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用MATLAB函数集)扩展了MATLAB的使用环境,以解决这些应用领域内特定类型的问题。

Simulink是一个用于对动态系统进行多域建模和模型设计的平台。它提供了一个交互式图形环境,以及一个自定义模块库,并可针对特定应用加以扩展,可应用于控制系统设计、信号处理和通信及图像处理等众多领域。

PolySpace提供代码验证,可确保消除源代码中的溢出、除零、数组访问越界及其他运行错误。此类产品可以证明源代码中不存在某些运行错误,使工程师能够选择并跟踪嵌入式软件质量的指标和阈值,帮助软件团队更好地定义质量目标,并更快地实施。该软件已经在汽车、航空、国防及工业自动化和机械行业中得到广泛应用。

目前,经常使用的MATLAB软件集成了MATLAB和Simulink两大模块,也是本书即将介绍的内容;而PolySpace是独立于MATLAB软件之外的,需要单独安装。1.1.2 MATLAB与其他数学软件

除MATLAB外,其他广泛应用的数学软件很多,著名的有Mathematica和Maple。

Mathematica是一个综合的数学软件环境,具有数值计算、符号推导、数据可视化和编程等多种功能,在符号计算领域有很高的知名度。整个Mathematica软件分为两大部分:Kemel和FrontEnd。Kemel是软件的计算中心,而FrontEnd负责与用户的交流,两者有一定的独立性。Mathematica的表达式含义十分丰富,几乎包含了一切要处理的对象。

Maple是当今世界上较优秀的几款数学软件之一。它以友善的使用环境、强大的符号处理、精确的数值计算、灵活的图形显示、高效的编程功能为越来越多的教师、学生和科研人员所喜爱,并成为他们进行数学处理的首选工具。由于Maple软件原是为符号计算而设计的,因此在数值计算与绘图方面的运算速度要比MATLAB慢。Maple的帮助系统是用英语写的,这给英文差的人们带来了不便。

MATLAB作为和Mathematica、Maple并列的三大数学软件之一,强项就是其强大的矩阵计算及仿真能力。每次MathWorks公司发布MATLAB的同时,也会发布仿真工具Simulink。

在欧美国家,很多大公司将产品投入实际使用之前都会进行仿真试验,他们主要使用的仿真软件就是Simulink。MATLAB提供了自己的编译器,全面兼容C++及Fortran两大语言。因此MATLAB成为工程师、科研工作者最好的语言、最好的工具。1.1.3 MATLAB的主要特点

MATLAB以其良好的开放性和运行的可靠性,已经成为国际控制界公认的标准计算软件,在国际上30多个数学类科技应用软件中,MATLAB在数值计算方面独占鳌头。(1)计算功能强大。(2)绘图非常方便。在Fortran和C语言里,绘图都很不容易,但在MATLAB里,数据的可视化非常简单。而且,MATLAB还具有较强的编辑图形界面的能力。(3)功能强大的工具箱是MATLAB的另一特色。MATLAB包含两个部分:核心部分和各种可选的工具箱。核心部分有数百个核心内部函数。其工具箱又分为两类:功能性工具箱和学科性工具箱。

功能性工具箱主要用来扩充其符号计算功能、图示建模仿真功能、文字处理功能及与硬件实时交互功能。功能性工具箱用于多种学科。

学科性工具箱的专业性比较强,如control、signal processing、communication等。这些工具箱都是由该领域内学术水平很高的专家编写的,所以用户无须编写自己学科范围内的基础程序,而直接进行高、精、尖的研究即可。

除内部函数以外,MATLAB的所有核心文件和工具箱文件都是可读可写的源文件,用户可通过对源文件的修改及加入自己的文件构成新的工具箱。(4)帮助功能完整:自带的帮助功能是非常强大的帮助手册。1.1.4 MATLAB的系统组成

MATLAB系统由MATLAB开发环境、MATLAB数学函数库、MATLAB语言、MATLAB图形处理系统和MATLAB应用程序接口(API)五大部分构成。

1.MATLAB开发环境

MATLAB开发环境是一套方便用户使用MATLAB函数和文件的工具集,其中许多工具是图形化用户接口。它是一个集成化的工作区,可以让用户输入、输出数据,并提供了M文件的集成编译和调试环境。它包括MATLAB桌面、命令行窗口、M文件编辑调试器、MATLAB工作区和在线帮助文档等。

2.MATLAB数学函数库

MATLAB数学函数库包括了大量的计算算法,从基本运算(如加法)到复杂算法(如矩阵求逆、贝济埃函数、快速傅里叶变换等),体现了其强大的数学计算功能。

3.MATLAB语言

MATLAB语言是一个高级的基于矩阵/数组的语言,包括程序流控制、函数、脚本、数据结构、输入/输出、工具箱和面向对象编程等特色。用户既可以用它来快速编写简单的程序,也可以用它来编写庞大复杂的应用程序。

4.MATLAB图形处理系统

图形处理系统使得MATLAB能方便地图形化显示向量和矩阵,而且能对图形添加标注和打印。它包括强力的二维及三维图形函数、图像处理和动画显示等函数。

5.MATLAB程序接口

MATLAB程序接口可以使MATLAB方便地调用C和Fortran程序,以及在MATLAB与其他应用程序间建立客户/服务器关系。1.1.5 MATLAB应用程序简介

应用程序(也称工具箱)是MATLAB的重要部分,它是MATLAB强大功能得以实现的载体和手段,是对MATLAB基本功能的重要扩充。○提示MATLAB会不定时更新应用程序,读者可到http://www.mathworks.com/products中了解MATLAB应用程序的最新动态。

应用程序又可以分为功能性应用程序和学科应用程序。功能性应用程序用来扩充MATLAB的符号计算、可视化建模仿真,以及与硬件实时交互等功能,能用于多种学科;学科应用程序是专业性比较强的应用程序,控制工具箱、信号处理与通信工具箱等都属于此类。

在MATLAB R2016a版本中应用程序如图1-1所示。下面将科学计算中常用的应用程序所包含的主要内容进行简单介绍。图1-1 展开的工具箱

1.样条工具箱

●分段多项式和B样条。

●样条的构造。

●曲线拟合及平滑。

●函数微积分。

2.优化工具箱

●线性规划和二次规划。

●求函数的最大值和最小值。

●多目标优化。

●约束条件下的优化。

●非线性方程求解。

3.偏微分方程工具箱

●二维偏微分方程的图形处理。

●几何表示。

●自适应曲面绘制。

●有限元方法。1.1.6 MATLAB R2016a新特性

MATLAB R2016a包括MATLAB和Simulink产品的新功能,以及其他产品的更新和补丁修复。(1)MATLAB产品系列的新功能如下:

●Optimization Toolbox:混合整数线性规划(MILP)求解器。

●Statistics Toolbox:使用每个主题的多个测量值反复测量数据建模。

●Image Processing Toolbox:使用MATLAB Coder为25个函数生成C代码,为5个函数增加了GPU加速功能。

●Econometrics Toolbox:状态空间模型、缺失数据情况下自校准的卡尔曼滤波器,以及ARIMA/GARCH模型性能增强。

●Financial Instruments Toolbox:对偶曲线构建,用于计算信用敞口和敞口概况的函数,以及利率上限、利率下限和掉期期权的布莱克模型定价。

●SimBiology:提供用于模型开发的模型估算和桌面增强的统一函数。

●System Identification Toolbox:递归最小二乘估算器和在线模型参数估算模块。

●MATLAB Production Server:实现客户端与服务器之间的安全通信,以及动态请求创建。(2)Simulink产品系列的新功能如下:

●Simulink:用于定义和管理与模型关联的设计数据的数据字典。

●Simulink:用于算法分割和用于多核处理器及FPGA目标器件的单一模型工作流程。

●Simulink:为LEGO MINDSTORMS EV3、Arduino Due和Samsung Galaxy Android设备提供内建支持。

●Stateflow:在Stateflow状态图中填写上下文相关的选项卡。

●Simulink Real-Time:仪表板、高分辨率目标显示器和FlexRay协议支持,以及合并了xPC Target和xPC Target Embedded Option的功能。

●SimMechanics:STEP文件导入和接头的总约束力计算。

●Simulink Report Generator:用于在Simulink Web View视图中丰富显示内容的对象检查器和通知程序。

除此之外,MATLAB R2016a版本有以下几个亮点:

●MATLAB实时编辑器:提供一种全新方式来创建、编辑和运行MATLAB代码,加快探索性编程和分析的速度。

●App Designer:提供增强的设计环境和UI组件集,用于构建MATLAB应用程序的环境,简化了布置用户界面可视组件的过程。

●深度学习:用于图像分类问题。

●Simulink Start Page:通过访问模板、最新模型以及精选示例更快地开始或继续工作。

●SimEvents新引擎:创建包含事件操作和新模块的离散事件模型和调度程序。

●飞行仪器库:使用标准座舱仪器显示飞行条件。1.2 MATLAB R2016a的目录结构

当用户在计算机上成功安装了MATLAB R2016a后,在用户自定义的安装目录内便包含一系列的文件和文件夹,如图1-2所示。图1-2 MATLAB R2016a安装目录下的文件和文件夹

下面重点介绍其中部分文件和文件夹的用途。

●\bin\win32:MATLAB R2016a系统中可执行的相关文件。

●\extern:创建MATLAB R2016a的外部程序接口的工具。

●\help:帮助系统。

●\java:MATLAB R2016a的Java支持程序。

●\notebook:Notebook是用来实现MATLAB教学工作环境与Word文字处理环境信息交互的软件,是一个兼备数学计算、图形显示和文字处理能力的集成环境。

●\rtw:Real-Time Workshop软件包。

●\simulink:Simulink软件包,用于动态系统的建模、仿真与分析。

●\stateflow:Stateflow软件包,用于状态机设计的图形化开发和设计工具。

●\sys:MATLAB R2016a需要的工具和操作系统库。

●\toolbox:MATLAB R2016a的各种应用程序。

●\uninstall:MATLAB R2016a的卸载程序。

●\license.txt:软件许可协议的内容。

●\patents.txt:软件申请的专利内容。1.3 MATLAB R2016a的工作环境

在MATLAB R2016a的安装目录内的bin文件夹下,双击MATLAB.exe图标,启动MATLAB R2016a,出现启动界面,如图1-3所示;启动后,弹出MATLAB R2016a的用户界面。图1-3 MATLAB R2016a启动界面

MATLAB R2016a的主界面即用户的工作环境,包括菜单栏、工具栏、开始按钮和各个不同用途的窗口,如图1-4所示。本节主要介绍MATLAB各交互界面的功能及其操作。图1-4 MATLAB R2016a的主界面1.3.1 菜单/工具栏

MATLAB的菜单/工具栏中包含3个标签,分别为主页、绘图和应用程序。其中,绘图标签下提供数据的绘图功能;而应用程序标签则提供了各应用程序的入口。主页标签提供了下述主要功能。

●新建:用于建立新的.m文件、图形、模型和图形用户界面。

●新建脚本:用于建立新的.m脚本文件。

●打开:用于打开MATLAB的.m文件、.fig文件、.mat文件、.mdl文件、.cdr文件等,也可通过快捷键Ctrl+O来实现此项操作。

●导入数据:用于从其他文件导入数据,单击后弹出对话框,选择导入文件的路径和位置。

●保存工作区:用于把工作区的数据存放到相应的路径文件中。

●设置路径:设置工作路径。

●预设:用于设置命令窗的属性,单击按钮弹出如图1-5所示的属性界面。图1-5 “预设项”对话框

●布局:提供工作界面上各个组件的显示选项,并提供预设的布局。

●帮助:打开帮助文件或其他帮助方式。1.3.2 命令行窗口

命令行窗口是MATLAB最重要的窗口。用户输入各种指令、函数、表达式等,都是在命令行窗口内完成的,如图1-6所示。图1-6 命令行窗口○注意“>>”是运算提示符,表示MATLAB处于准备状态,等待用户输入指令进行计算。当在提示符后输入命令,并按Enter键确认后,MATLAB会给出计算结果,并再次进入准备状态。

单击命令行窗口右上角的下三角形图标并选择“取消停靠”,可以使命令行窗口脱离MATLAB界面成为一个独立的窗口;同理,单击独立的命令行窗口右上角的下三角形图标并选择“停靠”,可使命令行窗口再次合并到MATLAB主界面。1.3.3 工作区

工作区窗口显示当前内存中所有的MATLAB变量的变量名、数据结构、字节数及数据类型等信息,如图1-7所示。不同的变量类型分别对应不同的变量名图标。图1-7 工作区窗口

用户可以选中已有变量,单击鼠标右键对其进行各种操作。此外,工作界面的菜单/工具栏上也有相应的命令供用户使用。

●新建变量:向工作区添加新的变量。

●导入数据:向工作区导入数据文件。

●保存工作区:保存工作区中的变量。

●清除工作区:删除工作区中的变量。1.4 MATLAB R2016a的通用命令

通用命令是MATLAB中经常使用的一组命令,这些命令可以用来管理目录、命令、函数、变量、工作区、文件和窗口。为了更好地使用MATLAB,用户需要熟练掌握和理解这些命令。下面对这些命令进行介绍。

1.常用命令

常用命令的功能如表1-1所示。表1-1 常用命令命令命令说明cd显示或改变当前工作文件夹dir显示当前文件夹或指定目录下的文件clc清除工作窗中的所有显示内容home将光标移至命令行窗口的最左上角clf清除图形窗口type显示文件内容clear清理内存变量echo工作窗信息显示开关disp显示变量或文字内容load加载指定文件的变量diary日志文件命令!调用DOS命令exit退出MATLABquit退出MATLABpack收集内存碎片hold图形保持开关path显示搜索目录save保存内存变量到指定文件

2.输入内容的编辑

在命令行窗口中,为了便于对输入的内容进行编辑,MATLAB R2016a提供了一些控制光标位置和进行简单编辑的常用编辑键与组合键,掌握这些可以在输入命令的过程中起到事半功倍的效果。表1-2列出了一些常用键盘按键及其作用。表1-2 命令行中的键盘按键键盘按键说明Ctrl+P,调用上一行↑Ctrl+N,调用下一行↓Ctrl+B,光标左移一个字符←Ctrl+F,光标右移一个字符→Ctrl+L,光标左移一个单词Ctrl+←Ctrl+→Ctrl+R,光标右移一个单词HomeCtrl+A,光标置于当前行开头EndCtrl+E,光标置于当前行末尾EscCtrl+U,清除当前输入行DeleteCtrl+D,删除光标处的字符BackspaceCtrl+H,删除光标前的字符Alt+Backspac恢复上一次删除e

3.标点

在MATLAB语言中,一些标点符号也被赋予了特殊的意义或代表一定的运算,具体内容如表1-3所示。表1-3 MATLAB语言的标点标点说明:冒号,具有多种应用功能;分号,区分行及取消运行结果显示,逗号,区分列及函数参数分隔符()括号,指定运算的优先级[]方括号,定义矩阵{}大括号,构造单元数组%百分号,注释标记!惊叹号,调用操作系统运算=等号,赋值标记单引号,字符串的标识符‘.小数点及对象域访问…续行符号1.5 MATLAB R2016a的文件管理1.5.1 当前文件夹浏览器和路径管理器

工作文件夹窗口可显示或改变当前文件夹,还可以显示当前文件夹下的文件,以及提供文件搜索功能。与命令行窗口类似,该窗口也可以成为一个独立的窗口,如图1-8所示。图1-8 工作文件夹窗口1.5.2 搜索路径及其设置

MATLAB提供了专门的路径搜索器来搜索存储在内存中的M文件和其他相关文件,MATLAB自带的文件所存放路径都被默认包含在搜索路径中,在MATLAB安装目录的“toolbox”文件夹中包含了所有此类目录和文件。

当用户在MATLAB提示符后输入一个字符串如“polyfit”后,MATLAB进行的路径搜索步骤如下:(1)检查polyfit是不是MATLAB工作区内的变量名,如果不是,执行下一步。(2)检查polyfit是不是一个内置函数,如果不是,执行下一步。(3)检查当前文件夹下是否存在一个名为polyfit.m的文件,如果没有,执行下一步。(4)按顺序检查在所有MATLAB搜索路径中是否存在polyfit.m文件。(5)如果仍然没有找到polyfit, MATLAB就会给出一条错误信息。○提示根据上述步骤可以推知,凡是不在搜索路径上的内容(文件和文件夹),都不能被MATLAB搜索到;当某一文件夹的父文件夹在搜索路径中而其本身不在搜索路径中时,则此文件夹并不会被搜索到。

一般情况下,MATLAB系统的函数,包括工具箱函数,都是在系统默认的搜索路径之中的,但是用户设计的函数有可能没有被保存到搜索路径下,很多情况容易造成MATLAB误认为该函数不存在。因此,只要把程序所在的目录扩展成MATLAB的搜索路径即可。

下面将介绍MATLAB搜索路径的查看和设置方法。

1.查看MATLAB的搜索路径

单击MATLAB主界面菜单/工具栏中的“设置路径”按钮,打开“设置路径”对话框,如图1-9所示。图1-9 “设置路径”对话框

该对话框分为左右两部分,左侧几个按钮用来添加目录到搜索路径,还可从当前的搜索路径中移除选择的目录;右侧列表框列出了已经被MATLAB添加到搜索路径的目录。

此外,在命令行窗口中输入命令:path

MATLAB将会把所有的搜索路径列出来:MATLABPATH C:\Users\lenovo\Documents\MATLAB D:\Program Files (x86)\MATLAB\R2016a\toolbox\matlab\datafun D:\Program Files (x86)\MATLAB\R2016a\toolbox\matlab\datatypes D:\Program Files (x86)\MATLAB\R2016a\toolbox\matlab\elfun D:\Program Files (x86)\MATLAB\R2016a\toolbox\matlab\elmat …

2.设置MATLAB的搜索路径

MATLAB提供了3种方法来设置搜索路径。(1)在命令行窗口中输入:edit path

或者:pathtool

或者通过MATLAB主界面菜单栏上的File→Set Path菜单,进入Set Path对话框,然后通过该对话框编辑搜索路径。(2)在命令行窗口中输入:path(path, 'path') % 'path’是待添加的目录的完整路径(3)在命令行窗口中输入:addpath 'path' -begin % 'path’是待添加的目录的路径,将新目录添加到搜索路径的开始 addpath 'path' -end % 'path’是待添加的目录的路径,将新目录添加到搜索路径的末端1.6 MATLAB R2016a的帮助系统

帮助文档是应用软件的重要组成部分,文档编制的质量直接关系到应用软件的记录、控制、维护、交流等一系列工作。

在当今软件生产中,没有一流的软件文档,就不会有一流的软件产品。MATLAB提供的帮助系统,不仅对初学者,而且对熟练操作MATLAB的用户都有很大的帮助。1.6.1 纯文本帮助

MATLAB中的各个函数,不管是内建函数、M文件函数,还是MEX文件函数等,一般都有M文件的使用帮助和函数功能说明,各个工具箱通常情况下也具有一个与工具箱名称相同的M文件来说明工具箱的构成内容。

因此,在MATLAB命令行窗口中,可以通过一些命令来获取这些纯文本的帮助信息。这些命令包括help、lookfor、which、doc、get、type等。

help命令常用的调用方式为:help FUN

执行该命令可以查询到有关于FUN函数的使用信息。例如要了解sin函数的使用方法,可以在命令行窗口中输入如下代码:help sin sin Sine of argument in radians. sin(X) is the sine of the elements of X. See also asin, sind. sin 的参考页 名为sin 的其他函数

显示的帮助文档介绍了sin函数的主要功能、调用格式及相关函数的链接。

lookfor命令常用的调用方式为:lookfor topic lookfor topic -all

执行该命令可以按照指定的关键字查找所有相关的M文件。例如:lookfor inverse ifft - Inverse discrete Fourier transform. ifft2 - Two-dimensional inverse discrete Fourier transform. ifftn - N-dimensional inverse discrete Fourier transform. ifftshift - Inverse FFT shift. acos - Inverse cosine, result in radians. acosd - Inverse cosine, result in degrees. acosh - Inverse hyperbolic cosine. acot - Inverse cotangent, result in radian. acotd - Inverse cotangent, result in degrees. …1.6.2 演示(Demos)帮助

通过Demos演示帮助,用户可以更加直观、快速地学习MATLAB中许多实用的知识。可以通过以下两种方式打开演示帮助。

选择MATLAB主界面菜单栏上的帮助下的示例命令。

在命令行窗口中输入:demos

无论采用上述何种方式,执行命令后会都弹出帮助窗口,如图1-10所示。MATLAB Examples里面又分为“Getting Started”、“Mathematics”、“Graphics”等一系列的演示。图1-10 帮助窗口1.6.3 帮助导航浏览器

帮助导航浏览器是MATLAB专门提供的一个独立的帮助子系统。该系统包含的所有帮助文件都存储在MATLAB安装目录下的help子目录下。用户可以采用以下两种方法打开帮助导航浏览器,分别为:helpbrowser

或者:doc1.7 MATLAB使用初步

下面以一个简单的示例向读者展示如何使用MATLAB进行简单的数值计算。(1)双击桌面上的MATLAB图标,进入MATLAB的工作环境界面。(2)在命令行窗口中输入“w=1/6*pi; ”,按Enter键,可以在工作区窗口看到变量w,大小为0.5236,命令行窗口中显示代码:w = 0.5236(3)在命令行窗口中输入“y= sin(w*2/3)”,按Enter键,可以在工作区窗口看到变量y,大小为0.3420,命令行窗口中显示代码:y = 0.3420(4)在命令行窗口中输入“z=sin(2*w)”,按Enter键,可以在工作区窗口看到变量z,大小为0.8660,命令行窗口中显示代码:z = 0.8660○提示当命令后面有分号(半角符号格式)时,按Enter键后,命令行窗口中不显示运算结果;如果无分号,则在命令行窗口中显示运算结果。当希望先输入多条语句,然后再同时执行它们时,则在输入下一条命令时,要在按住Shift键的同时按Enter键进行换行输入。例如,比较使用“; ”和不使用“; ”的区别。在命令行窗口中输入:x=rand(2,3); y=rand(2,3) A=sin(x) B=sin(2*y)命令行窗口中依次输出的结果如下:y = 0.3786 0.5328 0.9390 0.8116 0.3507 0.8759 A = 0.3016 0.4889 0.7137 0.4869 0.7295 0.6007 B = 0.6869 0.8751 0.9532 0.9986 0.6453 0.98361.8 本章小结

本章介绍了MATLAB R2016a的基本内容,主要包括MATLAB的发展历程、MATLAB R2016a的工作环境和帮助系统。这些内容是使用MATLAB进行工作的基础,需要熟悉。但笔者不建议花费太多的时间进行专门的学习,只需要简单浏览即可,待到以后的学习和使用中需要时再根据需要进行学习。第2章 MATLAB基础知识知识要点

MATLAB是一个大型运算平台,参与运算的对象有数据流、信号流、逻辑关系及展示。如同计算器一样,在MATLAB中数学式的计算是直截了当的。但要了解这个大型计算器的使用方法并合理使用它,就先要了解一些MATLAB的基础知识。本章是整个MATLAB学习的基础,主要内容包括MATLAB软件平台上的各种数据类型、矩阵的基本运算、运算符及字符串数据的操作等。2.1 数据类型

MATLAB中的数据类型主要包括数值类型、逻辑类型、字符串、函数句柄、结构体和单元数组类型。这6种基本的数据类型都是按照数组形式存储和操作的。另外,MATLAB中还有两种用于高级交叉编程的数据类型,分别是用户自定义的面向对象的用户类类型和Java类类型。2.1.1 数值类型

基本的数值类型主要有整数、单精度浮点数和双精度浮点数,如表2-1所示。表2-1 数值类型数据的分类

MATLAB中数值类型的数据包括有符号和无符号整数、单精度浮点数和双精度浮点数。在未加说明与特殊定义时,MATLAB对所有数值按照双精度浮点数类型进行存储和操作。

在需要时,可以指定系统按照整数型或单精度浮点型对指定的数字或数组进行存储、运算等操作。相对于双精度浮点数格式,整数型与单精度浮点型的优点在于节省变量占用的内存空间,当然首先要在满足精度要求的前提下。○提示MATLAB会自动进行记忆体的使用和回收,而不像C语言,必须由使用者一一指定。这些功能使得MATLAB易学易用,使用者可专心致力于撰写程序。

1.整数类型

MATLAB中提供了8种内置的整数类型,这8种类型的存储占用位数、能表示的数值范围和转换函数均不相同,如表2-2所示。表2-2 MATLAB中的整数类型整数类型数值范围转换函数77有符号8位整数int8~2-1-28无符号8位整数uint8-10~21515有符号16位整数int16~2-1-216无符号16位整数uint16-10~23131有符号32位整数int32~2-1-232无符号32位整数uint32-10~26363有符号64位整数int64~2-1-264uint64无符号64位整数-10~2

不同的整数类型所占用的位数不同,因此能够表示的数值范围也不同。在实际应用中,应根据实际需要合理选择合适的整数类型。

由于MATLAB中数值的默认存储类型是双精度浮点类型,因此将变量设置为整数类型时,需要使用相应的转换函数,将双精度浮点数转换为指定的整数类型。

在转换过程中,MATLAB默认将待转换数值转换为与之最为接近的整数值,若小数部分为0.5,则转换后的结果为与该浮点数最接近的两个整数中绝对值较大的一个。

另外,这些转换函数也可以将其他数据类型转换为指定的数据类型。在不超出数值范围的情况下,任意两个整数类型之间也可以通过转换函数进行相互转换。同时,由于不同的整数类型能够表示的数值范围不同,因此当运算结果超出相应的整数类型能够表示的范围时,就会出现一处错误,运算结果被置为该整数类型能够表示的最大值或最小值。

MATLAB中还包含了几类不同运算法则的取整函数,也可以把浮点数转换成整数。这些取整函数及相应的转换方式如表2-3所示。表2-3 MATLAB中的取整函数

2.浮点数类型

MATLAB中提供了单精度浮点数类型和双精度浮点数类型,其存储位宽、能够表示的数值范围、数值精度各方面均不相同,具体如表2-4所示。表2-4 MATLAB中的浮点数类型

由表2-4可知,单精度浮点类型的占用位数少,因此占用内存小,但能够表示的数值范围和数值的精度都比双精度浮点类型小。

由于MATLAB中的默认数值类型为双精度浮点类型,因此与创建整数类型数值一样,也可以通过转换函数来实现创建单精度浮点类型。

双精度浮点数参与运算时,返回值的类型依赖于参与运算的其他数据类型。参与运算的其他数据为逻辑型、字符型时,返回结果为双精度浮点型;参与运算的其他数据为整数型时,返回结果为相应的整数类型;参与运算的其他数据为单精度浮点型时,返回结果为相应的单精度浮点型。○提示在MATLAB中,单精度浮点类型不能与整数类型进行算术运算。

例2-1,浮点数参与的运算。

在命令行窗口输入:a=uint32(120); b=single(22.809); c=73.226; ab=a*b

输出结果:错误使用 .* 整数只能与相同类的整数或标量双精度值组合使用。

在命令行窗口输入:ac=a*c

输出结果:ac = 8787

在命令行窗口输入:bc=b*c

输出结果:bc = 1.6702e+003

在命令行窗口输入:str='hello'

输出结果:str = hello

在命令行窗口输入:newstr=str-44.3

输出结果:newstr = 59.7000 56.7000 63.7000 63.7000 66.7000

在命令行窗口输入:whos

输出结果:Name Size Bytes Class Attributes a 1x1 4 uint32 ac 1x1 4 uint32 b 1x1 4 single bc 1x1 4 single c 1x1 8 double newstr 1x5 40 double str 1x5 10 char

由于浮点数只占用一定的存储位宽,其中只有有限位分别用来存储指数部分和小数部分。因此,浮点类型能够表示的实际数值是有限且离散的,任何两个最近相邻的浮点数之间都有微小间隙,而处在间隙中的数值都只能用这两个相邻的浮点数之中的一个来表示。MATLAB中提供了eps函数,可以获取一个数值和最接近该数值的浮点数之间的间隙。

例2-2,浮点数的精度。

在命令行窗口输入:format long eps(3)

输出结果:ans = 4.440892098500626e-016

在命令行窗口输入:eps(single(3))

输出结果:ans = 2.3841858e-007

3.复数

复数包括实部和虚部两部分。MATLAB中默认使用字符i或j作为虚部标志。创建复数时,可以直接按照复数形式进行输入或者利用complex函数。MATLAB库函数中关于复数的相关函数如表2-5所示。表2-5 MATLAB中关于复数的相关函数函数说明real(z)返回复数z的实部abs(z)返回复数z的模conj(z)返回复数z的共轭复数imag(z)返回复数z的虚部angle(z)返回复数z的辐角complex(a, 以a为实部、b为虚部创建复数b)

4.无穷量(Inf)和非数值量(NaN)

MATLAB中使用Inf和-Inf分别代表正无穷量和负无穷量,NaN表示非数值量。正负无穷量的产生一般是由于运算溢出,产生了超出双精度浮点数数值范围的结果,非数值量则是由于0/0或Inf/Inf类型的非正常运算而产生的,这两个NaN彼此是不相等的。

除了异常运算结果外,MATLAB还提供了特定函数Inf和NaN来创建指定数值类型的无穷量和非数值量,生成结果默认为双精度浮点类型中还有一种特殊的指数类型的数据叫作非数,通常表示运算得到的数值结果超出了运算范围。非数的实部用NaN表示,虚部用InF表示。

例2-3,无穷量及非数值量的产生和性质。

在命令行窗口中输入:a = 0 / 0, b = log( 0 ), c = inf - inf

输出结果:Warning: Divide by zero. a = NaN Warning: Log of zero. b = -Inf c = NaN2.1.2 逻辑类型

逻辑类型的数据是指布尔类型的数据及数据之间的逻辑关系。除了传统的数学运算之外,MATLAB还支持关系和逻辑运算。这些运算的目的是提供求解真/假命题的答案。

作为所有关系和逻辑表达式的输入,MATLAB把任何非零数值当作真,把零当作假。所有关系和逻辑表达式的输出:对于真,输出为1;对于假,输出为0。

逻辑类型数据进行运算时需要用到关系操作符和逻辑运算符。

MATLAB关系操作符如表2-6所示。表2-6 MATLAB中的关系操作符关系操作说明符<小于<=小于或等于>大于>=大于或等于==等于~=不等于

MATLAB关系操作符能用来比较两个同样大小的数组,或用来比较一个数组和一个标量。在后一种情况中,标量和数组中的每一个元素相比较,结果与数组大小一样。

例2-4,判断两个数组之间的元素是否相等。

在命令行窗口输入:A = 1 : 9, B = 10 - A

输出结果:A = 1 2 3 4 5 6 7 8 9 B = 9 8 7 6 5 4 3 2 1

在命令行窗口输入:TrueorFalse = ( A == B ) %判断A与B中的元素是否相等

输出结果:TrueorFalse = 0 0 0 0 1 0 0 0 0○提示“=”和“= =”在MATLAB中的意义是不同的。“= =”是对等号两边的两个变量进行比较,当它们相等时返回1,不相等时返回0;而“=”则是被用来将运算的结果赋给一个变量。

逻辑运算符提供了一种组合或否定关系表达式,如表2-7所示。表2-7 MATLAB逻辑运算符逻辑运算说明符&与|或~非

例2-5,判断两个数组之间的元素是否相等。

在命令行窗口输入:A = 1 : 9; TrueorFalse = ( A > 2 ) & ( A < 6 ) %判断A中元素是否在2~6之间

输出结果:TrueorFalse = 0 0 1 1 1 0 0 0 0

除了上述关系与逻辑运算符之外,MATLAB还提供了大量其他关系与逻辑函数。

xor( x , y )指令的功能为异或运算,x和y同为零(假)或非零(真)时返回0,否则返回1。

any(x)指令的功能为判断是否为零向量或零矩阵(即向量或矩阵中的元素全部为零),如果是零向量或零矩阵,则返回1,否则返回0。

除此之外,MATLAB还提供了大量的函数,在运算过程中用来测试特殊值或条件是否存在,并返回相应的表示结果的逻辑值,如表2-8所示。表2-8 测试函数函数名称函数功能finite元素有限,返回真值Isempty参量为空,返回真值isglobal参量是一个全局变量,返回真值ishold当前绘图保持状态是“ON”,返回真值isieee计算机执行IEEE算术运算,返回真值isinf元素无穷大,返回真值isletter元素为字母,返回真值isnan元素为不定值,返回真值isreal参量无虚部,返回真值isspace元素为空格字符,返回真值isstr参量为一个字符串,返回真值isstudentMATLAB为学生版,返回真值isunix计算机为UNIX系统,返回真值2.1.3 字符和字符串

在MATLAB里,文本当作特征字符串或简单地当作字符串。字符串能够显示在屏幕上,也可以用来构成一些命令,这些命令在其他的命令中用于求值或者被执行。

在MATLAB中可能会遇到对字符和字符串的操作。一个字符串是存储在一个行向量中的文本,这个行向量中的每一个元素代表一个字符。实际上,元素中存放的是字符的内部代码,即ASCII码。

当在屏幕上显示字符变量的值时,显示出来的是文本,而不是ASCII数字。由于字符串是以向量的形式来存储的,因此可以通过它的下标对字符串中的任何一个元素进行访问。字符矩阵也可以通过下标索引进行访问,但是矩阵的每行字符数必须相同。

字符串一般是ASCII值的数值数组,它作为字符串表达式进行显示。

例2-6,字符串属性示例。

在命令行窗口输入:String ='Every good boy does fun.'; size(String)

输出结果:ans = 1 24

在命令行窗口输入:whos

输出结果:Name Size Bytes Class Attributes ans 1x2 16 double String 1x24 48 char

一个字符串是由单引号括起来的简单文本。在字符串里的每个字符是数组里的一个元素,字符串的存储要求每个字符8字节,如同MATLAB的其他变量。

因为ASCII字符只要求1字节,故这种存储要求是浪费的,7/8所分配的存储空间无用。然而,对字符串保持同样的数据结构可以简化MATLAB的内部数据结构。所给出的字符串操作并不是MATLAB的基本特点,但这种表达是方便和可接受的。

为了了解下面字符串的ASCII表达,只需对字符串执行一些算术运算。最简单和计算上最有效的方法是取数组的绝对值。

例2-7,字符串的ASCII表达。

在命令行窗口输入:String ='Every good boy does fun.'; U=abs (String)

输出结果:U = Columns 1 through 12 69 118 101 114 121 32 103 111 111 100 32 98 Columns 13 through 24 111 121 32 100 111 101 115 32 102 117 110 46

在命令行窗口输入:U=U+0

输出结果:U = Columns 1 through 12 69 118 101 114 121 32 103 111 111 100 32 98 Columns 13 through 24 111 121 32 100 111 101 115 32 102 117 110 46

上例中,加零到字符串并没有改变它的ASCII表达。

因为字符串是数值数组,所以它们可以用MATLAB中所有可利用的数组操作工具进行操作。

例2-8,字符串数组的索引示例。

在命令行窗口输入:String ='Every good boy does fun.'; U =String(7:10)

输出结果:U = good

在命令行窗口输入:U =String(10:-1:7)

输出结果:U = doog

上例中字符串像数组一样进行编址。这里元素7~10包含单词good。

字符串内的单引号是由两个连续的单引号来表示的。

例2-9,字符串中的单引号。

在命令行窗口输入:String ='It''s not the manual! '

输出结果:String = It's not the manual!

字符串的连接可以直接将字符串数组连接来实现。

例2-10,字符串的连接。

在命令行窗口输入:U ='Hello, '; V =' world! '; W = [U V];

输出结果:W = Hello, world!2.1.4 函数句柄

在MATLAB平台中,对函数的调用方法分为直接调用法和间接调用法。

●直接调用函数,被调用的函数通常被称为子函数。但是子函数只能被与其M文件同名的主函数或在M文件中的其他函数所调用,同时在一个文件中只能有一个主函数。

●而使用函数句柄对函数进行调用则避免了上述问题。函数句柄实际上提供了一种间接调用函数的方法。创建函数句柄需要用到操作符@。对MATLAB库函数中提供的各种M文件中的函数和使用者自主编写的程序中的内部函数,都可以创建函数句柄,从而可以通过函数句柄来实现对这些函数的间接调用。

创建函数句柄的一般句法格式为:Function_Handle = @Function_Filename;

其中,

●Function_Filename是函数所对应的M文件的名称或MATLAB内部函数的名称。

●@是句柄创建操作符。

●Function_Handle变量保存了这一函数句柄,并在后续的运算中作为数据流进行传递。

例如,F_Handle = @cos就创建了MATLAB内部函数cos的句柄,并将其保存在F_Handle变量中,后续的运算过程中就可以通过F_Handle(x)来实现cos(x)的功能。

通过函数句柄调用函数时,也需要指定函数的输入参数。例如可以通过F_Handle(arg1, arg2, …, argn )这样的调用格式来调用具有多个输入参数的函数。对于那些没有输入参数的函数,在使用句柄调用时,在句柄变量之后的圆括号中不填写变量名即可,即F_Handle()。

例2-11,函数句柄的创建与调用。

在命令行窗口输入:F_Handle = @cos

输出结果:F_Handle = @cos

在命令行窗口输入:x = 0 : 0.25 * pi : 2 * pi; F_Handle( x ) %通过函数句柄调用函数

输出结果:ans = 1.0000 0.7071 0.0000 -0.7071 -1.0000 -0.7071 -0.00000.70711.0000

MATLAB库函数中提供了大量关于处理函数句柄的操作函数,将函数句柄的功能与其他数据类型联系起来,扩展了函数句柄的应用。函数句柄的简单操作函数如表2-9所示。表2-9 函数句柄的操作函数函数名称函数功能functions(fun返回一个结构体,存储了函数的名称、函数类型handle)(simple或overloaded),以及函数M文件的位置func2str(funh将函数句柄转换为函数名称字符串andle)str2func(str)将字符串代表的函数转换为函数句柄save filename.mat 将函数句柄保存在*.mat文件中funhandleload filename.mat 把*.mat文件中存储的函数句柄加载到工作区funhandle

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载