基于MATLAB的试验设计和数据处理(txt+pdf+epub+mobi电子书下载)


发布时间:2020-07-11 20:23:14

点击下载

作者:魏霖静

出版社:中国铁道出版社

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

基于MATLAB的试验设计和数据处理

基于MATLAB的试验设计和数据处理试读:

前言

FOREWORD

本书从应用的角度出发,系统地介绍MATLAB编程及其在试验设计课程中的应用和数据处理的部分实例。全书共分8章,第1~3章介绍了MATLAB基础知识、数据统计基础、数据处理和统计绘图的基本原理等内容,将读者领入MATLAB的大门,并熟悉如何使用MATLAB,让读者对数据可视化、数据分析有所了解;第4~8章系统地介绍在参数估计、假设检验、方差分析、数据拟合和回归分析等试验设计问题中如何用MATLAB解决具体案例,从试验设计问题的实际出发,结合MATLAB技术的优势,通过详细的讲解步骤,使读者快速掌握基本技能。全书所有的试验内容都经过了测试,并且力争做到层次清晰,内容丰富,通俗易懂,便于学习。书中的实例可帮助读者充分理解试验设计的基本概念,掌握用MATLAB处理试验设计中的数据问题的技巧。本书由魏霖静独立完成,共计30.9万字。

本书受陇原青年创新创业人才项目(2016-47)、甘肃省科技支撑计划项目(1604WKCA011)、甘肃省高校重大软科学(战略)研究项目计划(2016F-10)资助。

在此对在本书编写过程中给予我帮助的老师表示衷心的感谢,也感谢为本书出版做出努力的老师和工作人员,感谢多年教学工作中给我启发和帮助的朋友及同学。

由于时间仓促,加之编者水平有限,书中难免存在疏漏与不妥之处,诚恳地欢迎各位专家及使用本书的读者批评指正,以便今后进一步修订和完善。

著者2017年1月第1章MATLAB基础知识1.1认识MATLAB

MATLAB(矩阵实验室)是MATrix LABoratory的缩写,是一款由美国The MathWorks公司出品的商业数学软件。MATLAB是一种用于算法开发、数据可视化、数据分析,以及数值计算的高级技术计算语言和交互式环境。除了矩阵运算、绘制函数等常用功能外,MATLAB还可以用来创建用户界面及调用其他语言(包括C、C++和FORTRAN)编写的程序,提供了仿真工具Simulink及其他众多领域的工具箱,如自动控制、信号处理、图像处理、模式识别、小波分析、数理统计、生物信息等,因其编程的灵活性和高效性、界面和功能的不断扩展,受到研究人员和高校师生的青睐。1.1.1 MATLAB的特点

MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C、FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使其成为一个强大的数学软件。在新的版本中也加入了对C、FORTRAN、C++、Java的支持,可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中供以后调用。此外,许多MATLAB爱好者编写了一些经典的程序,用户可以直接进行下载使用。

MATLAB的三大特点:(1)功能强大。MATLAB具有数值计算和符号计算、计算结果和编程可视化、数学和文字统一处理、离线和在线计算等功能。(2)界面友善、语言自然。MATLAB以复数处理作为计算单元,指令表达与标准教科书的数学表达式相近。(3)开放性强。该公司本身就推出了30多个应用工具箱,而世界上超过200家公司开发出与MATLAB兼容的第三方产品,这些产品向用户提供更多的工具箱、模块集、与其他商业产品的接口等。1.1.2 MATLAB常用工具箱介绍

MATLAB包括拥有数百个内部函数的主包和三十几种工具包。工具包又可以分为功能工具包和学科工具包。功能工具包用来扩充MATLAB的符号计算,具有可视化建模仿真、文字处理及实时控制等功能。学科工具包是专业性比较强的工具包,控制工具包、信号处理工具包、通信工具包等都属于此类。

开放性使MATLAB广受用户欢迎。除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包。(1)Matlab Main Toolbox:MATLAB主工具箱。(2)Control System Toolbox:控制系统工具箱。(3)Communication Toolbox:通信工具箱。(4)Financial Toolbox:财政金融工具箱。(5)System Identification Toolbox:系统辨识工具箱。(6)Fuzzy Logic Toolbox:模糊逻辑工具箱。(7)Higher-Order Spectral Analysis Toolbox:高阶谱分析工具箱。(8)Image Processing Toolbox:图像处理工具箱。(9)Computer Vision System Toolbox:计算机视觉工具箱。(10)LMI Control Toolbox:线性矩阵不等式工具箱。(11)Model predictive Control Toolbox:模型预测控制工具箱。(12)µ-Analysis and Synthesis Toolbox:µ分析工具箱。(13)Neural Network Toolbox:神经网络工具箱。(14)Optimization Toolbox:优化工具箱。(15)Partial Differential Toolbox:偏微分方程工具箱。(16)Robust Control Toolbox:健壮控制工具箱。(17)Signal Processing Toolbox:信号处理工具箱。(18)Spline Toolbox:样条工具箱。(19)Statistics Toolbox:统计工具箱。(20)Symbolic Math Toolbox:符号数学工具箱。(21)Simulink Toolbox:动态仿真工具箱。(22)Wavelet Toolbox:小波工具箱。(23)DSP system toolbox:DSP处理工具箱。(24)HMM:隐马尔科夫模型工具箱。1.2MATLAB R2012b的用户界面1.2.1 MATLAB R2012b的启动和退出

MATLAB R2012b的启动方法主要有以下几种:(1)双击桌面上的MATLAB R2012b快捷图标。(2)选择“开始”→“所有程序”→MATLAB R2012b命令。(3)选择MATLAB R2012b安装文件夹,双击MATLAB图标。

MATLAB启动界面如图1-1所示。

MATLAB的退出方法主要有以下几种:(1)按【ALT+F4】组合键,或者选择File菜单中的Exit命令。(2)单击窗口右上角的关闭图标。(3)在命令窗口中输入Exit命令,按【Enter】键执行。(4)按【Ctrl+Q】组合键。

图1-1 MATLAB启动界面1.2.2 MATLAB R2012b界面介绍

MATLAB R2012b版本具有MATLAB和Simulink的重大更新,可显著提升用户的使用与导航体验。整个界面采用选项卡式窗口,类似于Microsoft Office 2007及以上版本的风格。此外,MATLAB R2012b中还具有经过重新设计的帮助系统,改进了浏览、搜索、筛选和内容分类。

MATLAB R2012b界面(见图1-2)中包含3个选项卡,分别是HOME选项卡、PLOTS选项卡和APPS选项卡。

图1-2 MATLAB R2012b界面

1.HOME选项卡

HOME选项卡主要包含FILE功能组、VARIABLE功能组、CODE功能组、SIMULINK功能组、ENVIRONMENT功能组和RESOURCES功能组,如图1-3所示。

图1-3 HOME选项卡(1)FILE功能组:

● New Script:新建脚本。

● New:新建脚本(New Script)、函数(Function)、实例(Example)、类(Class)、系统对象(System Object)、图形窗口(Figure)、GUI(Graphical User Interface)、Simulink仿真。

● Open:打开MATLAB所支持格式的文件。

● Find Files:在指定的文件或路径中寻找。

● Compare:对照工具。(2)VARIABLE功能组:

● Import Data:导入数据。

● Save Workspace:将工作空间数据保存到文件中。

● New Variable:新建变量。

● Open Variable:打开已有变量。

● Clear Workspace:清除工作空间变量。(3)CODE功能组:

● Analyze Code:分析代码。

● Run and Time:运行并计时。

● Clear Commands:包括Clear Command Window(清除命令窗口中的显示)和Clear Command History(清除命令历史窗口中的显示)。(4)SIMULINK功能组:

● Simulink Library:Simulink库。(5)ENVIRONMENT功能组:

● Layout:布局,主要包括设置和显示两部分。

选择设置(Select Layout):默认(default)、仅显示命令窗口(command window only)、仅显示历史命令窗口和命令窗口(History and Command Window)、除了命令窗口外其他窗口最小化显示(All But Command Window Minimized)。

显示(Show):选择显示命令历史窗口(Command History)、选择显示当前文件夹窗口(Current Folder)、选择显示窗体标题(Panel Titles)、捷径选项(Shortcuts Tab)、快捷工具栏(Quick Access Toolbar)、当前文件夹工具栏(Current Folder Toolbar)。(6)RESOURCES功能组

● help菜单:帮助文档(Documentation)、MATLAB演示例子(Examples)、向MATHWORKS提交请求支持(Request Support)、支持网站(Support Web Site)、培训服务(Training)、检测更新(Check for Updates)、获取产品试验(Get Product Trials)、协议许可(Licensing)、使用条款(Terms of Use)、使用专利(Patents)、显示MATLAB的版本及用户登记信息(About MATLAB)。

2.PLOTS选项卡(见图1-4)(1)SELECTION功能组:选择当前文件夹下需要绘制图形的变量。(2)PLOTS功能组:可以选择绘制图形的类型。(3)OPTIONS功能组:选择新的图形或者再生图形。

图1-4 PLOTS选项卡

3.APPS选项卡(见图1-5)

图1-5 APPS选项卡(1)File功能组:获取更多的应用程序(Get More Apps)、安装应用程序(Install App)、程序包(Package App)。(2)APPS功能组:常用的工具(Favorites)、数学工具(Math)、统计和优化工具(Statistics and Optimization)、控制系统设计和分析工具(Control System Design and Analysis)、信号处理和通信工具(Signal Processing and Communications)、图像处理和计算机视觉工具(Image Processing and Computer Vision)、测试和测量工具(Test and Measurement)、计算金融学(Computational Finance)、计算生物学(Computational Biology)、代码生成(Code Generation)、应用部署(Application Deployment)、数据库连接和报告(Database Connectivity and Reporting)、仿真图形和报告(Simulation Graphics and Reporting)。1.2.3 MATLAB界面窗口介绍

MATLAB启动后主要包括当前文件夹窗口(Current Folder)、工作空间浏览窗口(Workspace)、命令历史窗口(Command History)和命令窗口(Command Window)4个操作窗口,如图1-6所示。

图1-6 MATLAB R2012b界面窗口

1.当前文件夹窗口(1)该窗口主要显示当前路径下包含的所有文件。(2)该窗口主要显示当前路径下包含的子目录、M文件、MAT文件和MDL文件等。对该界面上的M文件,可直接进行复制、编辑和运行;界面上的MAT数据文件,可直接送入MATLAB工作内存,在工作空间浏览器窗口显示。

2.工作空间浏览窗口

用于显示所有MATLAB工作空间中的变量名、数据结构、类型、大小和字节数。可以对变量进行观察、新建、删除、修改、提取和保存。

3.命令历史窗口

在该窗口中主要显示以前输入过的命令、函数、表达式,以及它们运行的日期、时间。该窗中的所有指令、文字都允许复制、重运行及用于产生M文件。

4.命令窗口

在命令窗口中可输入各种MATLAB命令、函数和表达式,并显示除图形外的所有运算结果,运行错误时,给出相关的错误提示。1.3MATLAB的基本使用1.3.1 常量与变量

1.常量

MATLAB提供了已经预先定义好其数值的常量,表1-1为MATLAB默认常量。

表1-1 MATLAB默认常量

2.变量

变量是MATLAB数值计算的基本单元。MATLAB语言中的变量无须事先定义,它会自动生成变量,并根据变量的操作确定相应的数据类型。

MATLAB变量命名时需要遵循下列规则:(1)变量名区分大小写,大写A和小写a是两个不同的变量。(2)变量名以英文字母开头,第一个字母后可以使用字母、数字、下画线,但不能使用标点符号和空格。(3)变量名长度不可以超过64位,超过部分会被忽略。(4)某些常量也可以作为变量来使用,比如i可以表示虚数单位,也可以表示变量。1.3.2 数据类型

MATLAB有15种基本的数据类型,每一种数据类型都是以数组为基础。主要的数据类型有:数值型、逻辑型、字符型、元胞型、结构型等。与其他计算机语言相比,MATLAB中的数据类型具有很好的灵活性。

1.数值型数据(1)整型:带符号和无符号。(2)浮点型:单精度和双精度。

在默认状态下,MATLAB将所有的数都看作双精度的浮点数。使用整型变量和单精度变量可以节约内存空间,表1-2为MATLAB的4种带符号整型和4种无符号整型。

表1-2 MATLAB 4种带符号整型和4种无符号整型

整型数据可以参与的运算有以下两种:

● 相同整型数据之间的运算,结果为同类型的整数。

● 不同的整型数据之间不能进行运算。

整型数据可以和双精度标量进行数值运算,结果为整数。在运算过程中保持浮点运算精度,最后将结果转换成整型。整型数据不能与不是标量的双精度数组进行运算,可以用intmax()和intmin()函数来查询不同整型所能表示的最大整数和最小整数。

浮点数包括单精度(占4字节)和双精度(占8字节),默认为双精度。浮点数转换函数主要有:

● single:将数据转换成单精度浮点数。

● double:将数据转换成双精度浮点数。

表1-3为浮点数与其他类型数据运算表。

表1-3 浮点数与其他类型数据运算表

可以用realmax()和realmin()函数来查询单精度和双精度所能表示的最大浮点数和最小浮点数。(3)复数:MATLAB的一个比较强大的功能就是直接在复数域上进行运算,而不用进行任何特殊的操作,在MATLAB中提供了一些函数来得到复数的一些基本数值。

● angle(z):复数z的相角(Phase angle)。

● sqrt(x):开平方。

● real(z):复数z的实部。

● imag(z):复数z的虚部。

● conj(z):复数z的共轭复数。(4)无穷大数:MATLAB中,可以产生正无穷和负无穷的数,用inf或-inf表示。

2.逻辑型数据

逻辑型数据0和1分别表示假和真两种状态,另外逻辑数据不一定都是标量。MATLAB中同样支持逻辑型数组。

3.字符型

MATLAB中用CHAR表示一个字符型数据,由多个字符按行向量的形式组成一个字符串,字符串中每个字符对应行向量的一个元素,字符串用一对单引号“"”标识。可以直接输入单引号法和调用函数char()两种方法生成字符串。

在MATLAB中提供了一些字符串运算函数:

● blanks(n):创建由n个空格组成的字符串。

● deblank(str):裁切字符串的尾部空格。

● strtrim(str):裁切字符串的开头和尾部的空格、制表符、回车符。

● lower(str):将字符串中的字母转换成小写。

● upper(str):将字符串中的字母转换成大写。

● sort(str):按照字符的ASCII值对字符串排序。

● num2str:将数字转换为数字字符串。

● str2num:将数字字符串转换为数字。

● mat2str:将数组转换成字符串。

● int2str:把数值数组转换为整数数字组成的字符数组。

● strcmp:比较两个字符串是否完全相等。若相等,返回真;否则,返回假。

● strncmp:比较两个字符串前n个字符是否相等。若相等,返回真;否则,返回假。

● strcmpi:比较两个字符串是否完全相等,忽略字母大小写。

● strncmpi:比较两个字符串前n个字符是否相等,忽略字母大小写。

● isletter:检测字符串中每个字符时否属于英文字母。

● isspace:检测字符串中每个字符是否属于格式字符(空格、回车、制表、换行符等)。

● isstrprop:检测字符每一个字符是否属于指定的范围。

4.元胞型

元胞型是MATLAB的一种特殊数据类型,可以将元胞数组看作一个无所不包的通用矩阵,或者叫作广义矩阵。组成元胞数组的元素可以是任何一种数据类型的常数或者常量,每一个元素也可以具有不同的尺寸和内存占用空间,每一个元素的内容也可以完全不同,所以元胞数组的元素叫作元胞。

5.结构型

结构型变量是另外一种可以将不同的数据类型组合在一起的特殊数据类型,可以存储一系列相关数据,同一个数据字段必须具有相同的数据类型。可以通过直接赋值的方法或者由STRUCT函数分配存储空间。1.3.3 运算符

MATLAB中的运算符包括算术运算符、关系运算符、逻辑运算符等,不同的运算符有不同的用途。

1.算术运算符

MATLAB算术运算符分为两类:矩阵运算和数组运算。矩阵运算是按线性代数的规则进行运算,而数组运算是数组对应元素间的运算。算术运算符及相关运算方式、说明如表1-4所示。

表1-4 算术运算符及相关运算方式、说明

MATLAB数组的算术运算是两个同维数组对应元素之间的运算。一个标量与数组的运算,是标量与数组每个元素之间的运算。

2.关系运算符

关系运算用于比较两个同维数组或同维向量的对应元素,结果为一个同维的逻辑数组。关系运算符及说明如表1-5所示。

表1-5 关系运算符

3.逻辑运算符

逻辑运算符用于处理两个运算单元之间的逻辑运算,如与、或、非等,其返回值为false或true,如表1-6所示。

表1-6 逻辑运算符

捷径运算符只对标量值执行逻辑与和逻辑或运算。捷径运算首先判断第一个运算对象,如果可以知道结果,直接返回,而不继续判断第二个运算对象。捷径运算提高了程序运算效率,可以避免一些不必要的错误。1.3.4 数组

MATLAB中的运算和操作是以数组为对象的,数组又包括数值数组、字符数组、元胞数组等,图1-7为工作区显示数组。

图1-7 工作区显示数组

1.数组的建立(1)直接输入法:以逗号或空格表示分列,分号或回车表示分行,以“[”开头,“]”结尾。(2)增量法创建法:定步长生成法x=a:t:b(t为步长,省略表示1)。(3)函数创建法:linspace()或logspace()函数创建。

● Linspace(a,b,n):创建一个取值为a~b一共n个元素的数组。

● logspace(a,b,n):创建一个取值为10â~10^b一共n个元素的数组。(4)数组编辑器创建法:先创建空矩阵,然后在工作空间中单击空矩阵,输入元素。

2.元胞数组的建立

元胞数组是MATLAB中的一种特殊数据类型,组成元胞数组的元素可以是任何一种数据类型的量,每一个元素也可以具有不同的尺寸,每一个元素的内容也可以是完全不同的。(1)直接创建法:(2)函数创建法:

3.数组的操作(1)数组的引用方式:单下标引用和双下标引用。(2)单下标引用:a(1)表示a数组中的第一个元素,a(n)表示a数组中的第n个元素。(3)双下标引用:a(2,3)表示a矩阵中第2行第3列的元素。1.3.5 基本函数

1.基本数学函数(见表1-7)

表1-7 基本数学函数

2.MATLAB常用的三角函数(见表1-8)

表1-8 MATLAB常用的三角函数

续表

3.向量的常用函数(见表1-9)

表1-9 向量函数

4.基本绘图函数(见表1-10)

表1-10 基本绘图函数1.3.6 文件的使用

根据数据的组织形式,MATLAB中的文件可分为ASCII文件和二进制文件。ASCII文件又称文本文件,它的每一个字节存放一个ASCII代码,代表一个字符。二进制文件是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放。

MATLAB中关于文件方面的函数和C语言相似,如表1-11所示。

表1-11 MATLAB的文件操作命令

1.文件的打开和关闭

对文件读/写之前应“打开”该文件,使用结束之后应“关闭”该文件。函数fopen()用于打开文件,其调用格式为:

fid=fopen('filename','permission')(1)fid是文件标识符(File Identifier)。(2)fopen指令执行成功后就会返回一个正的fid值。如果fopen指令执行失败,fid就返回-1。(3)filename是文件名。(4)permission是文件允许操作的类型,可设为以下几个值:r——只读;w——只写;a——只能追加(append);r+——可读可写。

与fopen对应的指令为fclose,它用于关闭文件,其指令格式为:

status=fclose(fid)

如果成功关闭文件,status返回的值就是0。

2.读/写操作(1)读操作:fread('filename')读二进制文件;fscanf('filename')读纯文本文件。(2)写操作:fwrite的指令格式:fwrite(fid,要保存的数据矩阵,'精度格式');fprintf的指令格式:fprintf(fid,'数据格式',需要保存的数据矩阵)。

3.MATLAB的mat文件【例1-1】 把MATLAB工作空间中的数据矩阵a、b、c保存到数据文件data1.mat中。

save data1 a b c

注:MATLAB中的默认数据文件mat文件可以省略扩展名。【例1-2】 把生成的data.mat中的所有数据加载到MATLAB工作空间中。

load data

4.读入纯文本文件

可以把Word文档中整行整列的数据粘贴到纯文本文件,然后调入到MATLAB工作空间中。【例1-3】 把纯文本文件data.txt加载到工作空间。

a=load('data.txt');

或者

a=textread('data.txt');

5.数据写入纯文本文件【例1-4】 使用save命令把矩阵a保存到纯文本文件data.txt中。

a=randi([1,10],500);

save data.txt a -ascii【例1-5】 使用dlmwrite命令把矩阵b保存到纯文本文件data.txt。

b=rand(5)

dlmwrite('data.txt',b)【例1-6】 生成服从标准正态分布随机数的200×100矩阵,然后用fprintf命令保存到纯文本文件data.txt。

6.Excel文件读入数据

MATLAB读入Excel文件的命令是xlsread,使用格式为:

num=xlsread(filename,sheet,Range)

[num,txt]=xlsread(filename,sheet,Range)

其中,第1个返回值是数值矩阵,第2个返回值是字符串。【例1-7】 把Excel文件data1.xls的表单Sheet1的域A2:D5中的数据赋给a,表单Sheet2中的全部数据赋给b。

a=xlsread('data1.xls',1,'A2:D5')

b=xlsread('data1.xls',2)

7.数据写入Excel文件

MATLAB把数据写入Excel文件的命令是xlswrite,使用格式为:

xlswrite(filename,A,Sheet,Range)

其中,filename是要写入数据的文件名,A是要写入的矩阵,Sheet是表单名,Range是数据域的地址或地址起始值。【例1-8】 把一个10×5矩阵a写到Excel文件data2.xls表单Sheet1中,把一个3×3矩阵b写入表单Sheet2的B2开始的域中。1.4MATLAB帮助系统1.4.1 帮助命令

MATLAB帮助命令包括help和lookfor命令。

1.help命令

在MATLAB命令窗口中直接输入help命令将会显示当前帮助系统中所包含的所有项目。也可以利用help加函数名来显示该函数的帮助说明。(1)Helpwin:帮助窗口命令。(2)Helpdesk:帮助桌面。(3)Lookfor:返回包含制定关键词的项。(4)Demo:打开示例窗口。【例1-9】 使用help命令对std()函数的使用。

2.lookfor命令

lookfor命令度搜索范围内的M文件进行关键字搜索,条件比较宽松,如要查找具有某种功能的命令或函数,但又不知道函数或命令的确切名字时可以用。lookfor命令只对M文件的第一行进行关键字搜索,若在lookfor命令加上-all选项,则对M文件进行全文搜索。1.4.2 演示系统

在Help窗口(见图1-8)中选择demos选项卡,或者命令窗口中

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

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载