matlab基础知识
- 格式:doc
- 大小:120.00 KB
- 文档页数:11
MATLAB讲义第一章 MATLAB系统概述1.1 MATLAB系统概述MATLAB(MATrix LABoratory)矩阵实验室的缩写,全部用C语言编写。
特点:(1)以复数矩阵作为基本编程单元,矩阵运算如同其它高级语言中的语言变量操作一样方便,而且矩阵无需定义即可采用。
(2)语句书写简单。
(3)语句功能强大。
(4)有丰富的图形功能。
如plot,plot3语句等。
(5)提供了许多面向应用问题求解的工具箱函数。
目前,有20多个工具箱函数,如信号处理、图像处理、控制系统、系统识别、最优化、神经网络的模糊系统等。
(6)易扩充。
1.2 MATLAB系统组成(1)MATLAB语言MATLAB语言是高级的矩阵、矢量语言,具有控制流向语句、函数、数据结构、输入输出等功能。
同时MATLAB又具有面向对象编程特色。
MATLAB语言包括运算符和特殊字符、编程语言结构、字符串、文件输入/输出、时间和日期、数据类型和结构等部分。
(2)开发环境MATLAB开发环境有一系列的工具和功能体,其中大部分具有图形用户界面,包括MATLAB桌面、命令窗口、命令历史窗口、帮助游览器、工作空间、文件和搜索路径等。
(3)图形处理图形处理包括二维、三维数据可视化,图像处理、模拟、图形表示等图形命令。
还包括低级的图形命令,供用户自由制作、控制图形特性之用。
(4)数学函数库有求和、正弦、余弦等基本函数到矩阵求逆、求矩阵特征值和特征矢量等。
MATLAB数学函数库可分为基本矩阵和操作、基本数学函数、特殊化数学函数、线性矩阵函数、数学分析和付里叶变换、多项式和二重函数等。
(5)MATLAB应用程序接口(API)MATLAB程序可以和C/C++语言及FORTRAN程序结合起来,可将以前编写的C/C++、FORTRAN语言程序移植到MATLAB中。
1.3 MATLAB的应用范围包括:MATLAB的典型应用包括:●数学计算●算法开发●建模、仿真和演算●数据分析和可视化●科学与工程绘图●应用开发(包括建立图形用户界面)以矩阵为基本对象第二章 Matlab基础2.1 MATLAB快速入门(1)搜索路径搜索路径也被看作是MATLAB的路径,其包含的文件被认为在路径上。
第二讲Matlab基础知识1.标识符把标志变量、常量或文件名的特定字符称为标识符,Matlab规定必须是英文字母、阿拉伯数字和下划线等符号组成的字符串,第一个符号必须是英文字母。
2.Matlab中的数据及变量类型有三种类型的基本数据:(1)数值型数据,简称数值(Double Array):一般输入的数字均为数值数据,包含实数、复数。
(2)字符串型数据,简称字符量(Char Array):用英文格式单引号加以界定的数字、字符、各种符号、表达式、方程式和汉字等。
(3)符号型数据,简称符号量(Sym Object):用sym和syms可以把字符、表达式、方程、矩阵等定义成数学符号,称为符号型数据,运算结果为数学表达式。
在命令窗口中键入class(a),回车可知已有变量a是哪一种类型的数据。
3.变量名及赋值(略)2.1 数值矩阵2.1.1 永久性数值变量名除了i、j、pi、eps(浮点运算相对精度10-52)、Inf、NaN外还有,realmin(最小正浮点数2-1022)、realmax(最大正浮点数21023)。
2.1.2 数值矩阵的创建1.直接输入法>>a=[1 6 1;4 6 2;9 3 8];>> b=[2-3i,3+5i,2i;3,9i,6;5-i,7i,4];3.变换矩阵结构的命令flipud(a)——输出矩阵a上下翻转后的矩阵;fliplr(a)——输出矩阵a左右翻转后的矩阵;rot90(a,k)——输出矩阵a沿逆时针旋转k个90度后的矩阵,k为正负整数;rot90(a)——输出矩阵a逆时针旋转90度后的矩阵;reshape(A,m,n)——输出一个m×n=k阶矩阵,它是由矩阵a的k个元素重新排列构成的矩阵,重排前后元素在矩阵中的符号不变。
4.一批特殊向量(行矩阵)的创建(1)等差数列型向量的创建增量输入法:t=a:h:b或t=[a:h:b],>> t=(a:h:b),a、b为起始值,h为公差,可正,可负,省略时为1.例如>> t=0:0.1:2*pi线性等分命令t=linspace(a,b,n),a、b为起始值,n为(b-a)的等分点个数。
MATLAB讲义第一章 MATLAB系统概述1.1 MATLAB系统概述MATLAB(MATrix LABoratory)矩阵实验室的缩写,全部用C语言编写。
特点:(1)以复数矩阵作为基本编程单元,矩阵运算如同其它高级语言中的语言变量操作一样方便,而且矩阵无需定义即可采用。
(2)语句书写简单。
(3)语句功能强大。
(4)有丰富的图形功能。
如plot,plot3语句等。
(5)提供了许多面向应用问题求解的工具箱函数。
目前,有20多个工具箱函数,如信号处理、图像处理、控制系统、系统识别、最优化、神经网络的模糊系统等。
(6)易扩充。
1.2 MATLAB系统组成(1)MATLAB语言MATLAB语言是高级的矩阵、矢量语言,具有控制流向语句、函数、数据结构、输入输出等功能。
同时MATLAB又具有面向对象编程特色。
MATLAB语言包括运算符和特殊字符、编程语言结构、字符串、文件输入/输出、时间和日期、数据类型和结构等部分。
(2)开发环境MATLAB开发环境有一系列的工具和功能体,其中大部分具有图形用户界面,包括MATLAB桌面、命令窗口、命令历史窗口、帮助游览器、工作空间、文件和搜索路径等。
(3)图形处理图形处理包括二维、三维数据可视化,图像处理、模拟、图形表示等图形命令。
还包括低级的图形命令,供用户自由制作、控制图形特性之用。
(4)数学函数库有求和、正弦、余弦等基本函数到矩阵求逆、求矩阵特征值和特征矢量等。
MATLAB数学函数库可分为基本矩阵和操作、基本数学函数、特殊化数学函数、线性矩阵函数、数学分析和付里叶变换、多项式和二重函数等。
(5)MATLAB应用程序接口(API)MATLAB程序可以和C/C++语言及FORTRAN程序结合起来,可将以前编写的C/C++、FORTRAN语言程序移植到MATLAB中。
1.3 MATLAB的应用范围包括:MATLAB的典型应用包括:●数学计算●算法开发●建模、仿真和演算●数据分析和可视化●科学与工程绘图●应用开发(包括建立图形用户界面)以矩阵为基本对象第二章 Matlab基础2.1 MATLAB快速入门(1)搜索路径搜索路径也被看作是MATLAB的路径,其包含的文件被认为在路径上。
第2章基础知识本章着重介绍MATLAB的一些基础知识,包括数据类型、基本矩阵操作、运算符和字符串处理函数。
本章是MATLAB编程的基础。
2.1 数据类型MATLAB中定义了很多种数据类型,包括字符、数值、单元、结构、java类、函数句柄等类型,用户还可以自己定义数据类型。
在MATLAB中有15种基本数据类型,每种基本数据类型均以数组/矩阵的形式出现,该矩阵可以是最小的0*0矩阵到任意大小的n维矩阵。
1.数值类型数值类型包含整数、浮点数和复数3种类型。
另外MATLAB还定义了Inf和NaN两个特殊数值。
(1)整数类型MATLAB支持1、2、4和8字节的有符号整数和无符号整数。
这8种数据类型的名称、表示范围、转换函数如表2-1所示,其中转换函数可以把其它数据类型的数值强制转换为对应的整数类型。
尽可能使用字节少的数据类型,这样可以节约存储空间和提高运算速度。
表2-1 整数类型名称范围转换函数名称范围转换函数有符号1字节整数int8() 无符号1字节整数uint8()有符号2字节整数int16() 无符号2字节整数uint16() 有符号4字节整数int32() 无符号4字节整数uint32() 有符号8字节整数int64() 无符号8字节整数uint64()(2)浮点数类型MATLAB有单精度和双精度两种浮点数,其中双精度浮点数为MATLAB默认的数据类型。
这2种数据类型的名称、存储空间、表示范围和转换函数如表2-2所示。
表2-2 浮点数类型名称存储空间表示范围转换函数单精度浮点数4字节single()双精度浮点数8字节double() (3)复数类型复数包含实部和虚部。
在MATLAB中可以用i或j来表示虚部。
例如:在命令窗口中用赋值语句产生复数5+10i,代码如下:A=5+10i例如:在命令窗口用函数complex()产生复数5+10i,具体代码如下:X=5;Y=10;z=complex(x,y)(4)Inf和NaN在MATLAB中用Inf和-Inf分别表示正无穷大和负无穷大。
第一章MATLAB基础知识1.1 MATLAB开发环境1.MATLAB操作桌面MATLAB4.0以上版本都是在Windows以上环境支持下操作与运行的,因此,这里必须假定读者对Windows有一定的了解和掌握。
本书以Windows98环境,MATLAB6.5版本为例介绍。
书中绝大多数例子在MA TLAB5.3版本中亦能使用.要想进入MATLAB系统,方法有二:(1)在Windows98的桌面上双击MATLAB快捷图标。
(2)单击Windows98的“开始”按钮,再依次单击:程序/MA TLAB/MA TLAB6.5;图1-1MATLAB6.5除保留了传统的命令窗口外,还增加了启动平台窗口、工作空间窗口、命令历史窗口、当前路径窗口等窗口,与新的M文件编辑器和新的在线帮助浏览器等共同构成了MA TLAB6.5的开发环境。
MATLAB的开发环境是MATLAB语言的基础和核心部分,MATLAB语言的全部功能都是在MA TLAB的开发环境中实现的,MA TLAB的仿真工具Simulink、MATLAB的工具箱等其他附加功能的实现也必须使用MATLAB开发环境,因此,掌握MATLAB 的开发环境是掌握MATLAB语言的关键。
启动MA TLAB后,将显示包括命令窗口、启动平台窗口、工作空间窗口、命令历史窗口和当前路径窗口等5个窗口和主菜单组成的操作桌面(图1-1)。
本节对操作桌面的各个窗口作简要介绍,部分窗口的功能和使用将在以后的章节中详细介绍。
操作桌面缺省状态下显示3个窗口,当前路径和工作空间窗口在同一位置显示,可以通过该窗口下方的箭头或窗口标签来切换,命令历史窗口和当前目录窗口在同一位置显示,可以通过该窗口下方窗口标签来切换。
每个窗可以脱离操作桌面独立出来。
也可以通过菜单View来选择显示哪些窗口。
MATLAB还设定了几种特定的窗口布局方式,在View菜单的Desktop Layout选项中,给定了6种布局方式:Default(缺省方式)Command Window Only(只显示命命令窗口方式)Simple(简单方式,只有命令历史窗口和命令窗口)Short History(低命令历史窗口方式)Tall History(高命令历史窗口方式)Five Panel(5个窗口平铺方式)2.MATLAB的通用参数设置MATLAB的通用参数和各功能窗口的参数可以通过主菜单中的file/Preferences项设置,这里先介绍通用参数的设置。
MATLAB基础知识及使用方法第一章:MATLAB简介与环境介绍1.1 MATLAB概述MATLAB是一种高级编程语言和数值计算环境,广泛应用于科学计算、工程设计、数据分析和算法开发等领域。
它提供了强大的数值计算工具和图形绘制功能,并有丰富的库函数和工具箱可供使用。
1.2 MATLAB环境介绍MATLAB的主要界面包括命令窗口、编辑器、工作区和命令历史等。
命令窗口用于交互式执行命令和脚本,编辑器用于编写和编辑脚本文件,工作区用于显示和管理变量,命令历史用于查看和管理执行过的命令。
第二章:MATLAB基本语法2.1 变量和数据类型在MATLAB中,变量可以通过简单的赋值来创建,并且不需要事先声明变量类型。
常见的数据类型包括数值类型(整数、浮点数)、字符类型和逻辑类型(布尔型)等。
MATLAB还提供了复数类型和矩阵类型,具有丰富的数值计算功能。
2.2 运算符和表达式MATLAB支持常见的数学运算符,如加减乘除、取余和乘方等。
此外,还提供了矩阵运算符和逻辑运算符,方便处理矩阵和逻辑表达式。
表达式可以由变量、常数和运算符组合而成,并且支持函数调用。
2.3 控制流程MATLAB提供了条件语句(if-else)、循环语句(for、while)和函数等控制流程结构,以实现不同的程序逻辑。
条件语句根据条件的真假执行不同的代码块,循环语句重复执行一段代码块,函数封装了一段可重复使用的代码。
第三章:MATLAB图形绘制3.1 二维图形绘制MATLAB提供了丰富的函数和工具箱,以绘制各种二维图形,如线图、散点图、柱状图和饼图等。
用户可以自定义图形样式、坐标轴刻度、图例和注释等,以满足不同的数据可视化需求。
3.2 三维图形绘制除了二维图形外,MATLAB还支持绘制三维图形,如曲面图和体积图等。
通过调整视角、设置颜色映射和光照效果,用户可以更直观地表达三维数据的特征和分布情况。
3.3 动态图形绘制MATLAB中的图形绘制功能不仅限于静态图形,还可用于生成动态图形。
一、1、数学建模基础知识及常用命令一、界面窗口介绍:1 命令窗口(command window),窗口中输入命令,回车实现计算或绘图功能。
2 工作空间窗口(work space)运行matlab命令时所产生的变量都被加入到工作空间,该窗口可以显示命令窗口中已输入的变量的名称,数值等。
3 命令历史窗口(command history)显示所有执行过的命令,选定某个命令时可以双击或按F9执行。
4 当前目录窗口(Current folder)显示当下目录下的文件信息。
二、常用运算1、算术运算符加 + 减 - 乘 * 左除 / 右除 \ 乘方 ^注意:在普通的数值运算中,左除为我们常用的除法形式,左除右除结果比较像逆运算,如1/2 和1\2结果互为倒数,但在矩阵的运算中,结果完全不一样,类似于左乘和右乘结果一般会不一样。
运算的优先级:从左到右,幂运算最高优先级,乘除法具有相同次优先级,加减法具有相同的低优先级,括号可以用来改变优先次序。
大家可以进行几个普通计算(练习10分钟)1、325+47⨯÷ 2、4 59+986-2.7+55-1033.5+20⨯()29()2、数据显示格式默认情况下,matlab显示小数点后4位小数,可以利用format命令改变显示格式(一般写在要改变的数值的命令前):format short 小数点后4位format long 小数点后15位format bank 小数点后2位(以上为三个常用的)format rat 最接近的有理数如以 为例:>> pi=>> format long>> pi>> format rat>> pians =355/113>> format bank>> pians =>> format short>> pians =三、matlab变量1、变量赋值形式变量=表达式(数值)或表达式(数值)其中,“=”为赋值符号,将右边表达式的值赋给左边变量(上面左的含义),当不指定输出变量时,matlab将表达式的值赋给临时变量ans(右的含义)。
学习MATLAB编程语言的基础知识章节一:MATLAB编程语言的概述MATLAB是一种高级编程语言和环境,专门用于科学计算和数据分析。
它由MathWorks公司开发,已成为许多领域中研究人员和工程师的首选工具。
MATLAB具有强大的数值计算能力和丰富的功能库,可以处理各种数学问题,如线性代数、信号处理、优化和图像处理等。
此外,MATLAB还提供了交互式编程环境,使用户能够快速测试和调试代码。
章节二:MATLAB编程环境的介绍MATLAB的编程环境包括命令窗口、编辑器和调试器等组件。
用户可以通过命令窗口直接输入和执行MATLAB代码,也可以通过编辑器创建和编辑脚本或函数。
调试器功能可用于跟踪代码执行过程、检查变量的值和查找错误。
章节三:MATLAB基本语法和数据类型MATLAB的语法与传统的编程语言类似,使用分号作为语句结束符,并使用变量来存储数据。
常用的数据类型包括数字、字符串、矩阵和结构体等。
MATLAB还支持各种运算符和控制流语句,例如循环、条件语句和函数调用等。
章节四:MATLAB中的向量和矩阵操作MATLAB中的向量和矩阵操作是其特有的优势之一。
用户可以使用简洁的语法来执行向量和矩阵的数学运算,如加法、减法、乘法和除法等。
此外,MATLAB还提供了许多方便的函数来处理向量和矩阵,例如转置、求逆、矩阵乘法和行列式计算等。
章节五:MATLAB中的绘图与数据可视化MATLAB提供了强大的绘图工具箱,可以创建各种类型的图形,例如线图、散点图、柱状图和曲线图等。
用户可以使用简洁的命令来设置图形的样式、坐标轴标签和图例等。
此外,MATLAB还支持三维绘图和动画效果,使用户能够更好地呈现和分析数据。
章节六:MATLAB中的函数和脚本编程MATLAB允许用户创建自定义函数和脚本,以实现特定的计算任务。
函数是一段可重复使用的代码块,可以接受输入参数并返回输出结果。
脚本则是一系列按顺序执行的命令,用于完成特定的计算过程。
MATLAB入门教程1.MATLAB的基本知识1-1、基本运算与函数在MATLAB下进行基本数学运算,只需将运算式直接打入提示号(>>)之後,并按入Enter键即可。
例如:>> (5*2+1.3-0.8)*10/25ans =4.2000MATLAB会将运算结果直接存入一变数ans,代表MATLAB运算後的答案(Answer)并显示其数值於萤幕上。
小提示:">>"是MATLAB的提示符号(Prompt),但在PC中文视窗系统下,由於编码方式不同,此提示符号常会消失不见,但这并不会影响到MATLAB的运算结果。
我们也可将上述运算式的结果设定给另一个变数x:x = (5*2+1.3-0.8)*10^2/25x = 42此时MATLAB会直接显示x的值。
由上例可知,MATLAB认识所有一般常用到的加(+)、减(-)、乘(*)、除(/)的数学运算符号,以及幂次运算(^)。
小提示:MATLAB将所有变数均存成double的形式,所以不需经过变数宣告(Variable declaration)。
MATLAB同时也会自动进行记忆体的使用和回收,而不必像C语言,必须由使用者一一指定.这些功能使的MATLAB易学易用,使用者可专心致力於撰写程式,而不必被软体枝节问题所干扰。
若不想让MATLAB每次都显示运算结果,只需在运算式最後加上分号(;)即可,如下例:y = sin(10)*exp(-0.3*4^2);若要显示变数y的值,直接键入y即可:>>yy =-0.0045在上例中,sin是正弦函数,exp是指数函数,这些都是MATLAB常用到的数学函数。
下表即为MATLAB常用的基本数学函数及三角函数:小整理:MATLAB常用的基本数学函数abs(x):纯量的绝对值或向量的长度angle(z):复数z的相角(Phase angle)sqrt(x):开平方real(z):复数z的实部imag(z):复数z的虚部conj(z):复数z的共轭复数round(x):四舍五入至最近整数fix(x):无论正负,舍去小数至最近整数floor(x):地板函数,即舍去正小数至最近整数ceil(x):天花板函数,即加入正小数至最近整数rat(x):将实数x化为分数表示rats(x):将实数x化为多项分数展开sign(x):符号函数(Signum function)。
Matlab基础知识⼀、matlab简介MATLAB是matrix&laboratory两个词的组合,意为矩阵⼯⼚(矩阵实验室),由美国MathWorks公司出品的商业数学软件,⽤于算法开发、数据可视化、数据分析以及数值计算的⾼级技术计算语⾔和交互式环境,主要包括MATLAB和Simulink两⼤部分。
⼆、数据类型1、函数句柄:是⼀个可调⽤的matlab函数的关联,有了函数句柄这种关联,⽤户在任何情况下都可以通过函数句柄调⽤matlab函数,即使是超出正常的函数调⽤范围仍然可以。
函数句柄四个⽤途:(1)可以将⼀个函数传递给另⼀个函数;(2)可以捕获⼀个函数的数值供下⼀次使⽤;(3)可以在正常范围外调⽤函数;(4)可以在函数句柄以.mat⽂件类型保存,供下⼀次matlab运⾏时使⽤。
2、结构类型结构类型是包含⼀组彼此相关、数据结构相同但类型不同的数据类型。
3、细胞数组类型细胞数组是matlab特有的⼀种数据类型,组成它的元素是细胞,细胞是⽤来存储不同类型数据的单元。
相同数组的第⼆个细胞的类型与⼤⼩可以和第⼀个细胞完全不⼀样。
三、matlab运算符1、算式运算符2、关系运算符关系运算符两侧的矩阵维数必须相同。
关系运算为真返回逻辑1,反之返回值为逻辑0。
3、逻辑运算符参与矩阵元素逻辑运算符的逻辑矩阵必须是位数相同的矩阵。
4、运算优先级四、matlab的矩阵1、矩阵合并纵向合并矩阵(要求矩阵A、B的列数相同):C = [A;B]横向合并矩阵(要求矩阵A、B的维数相同):C = [A B]2、矩阵拆分3、矩阵运算相关函数求矩阵⾏列式的值:det()求转置矩阵:transpose()或者⽤运算符"'"eg:B=transpose(A)等价于B=A'求逆矩阵:inv()求⼴义逆矩阵:pinv()(即矩阵不是⽅阵或者是⼀个⾮满秩的⽅阵时,矩阵没有逆矩阵,但可以求得伪逆矩阵也成为⼴义逆矩阵)求矩阵的秩:rank()五、控制语句1、每个if、for、while语句必须以end语句结束,否则是错误的;2、for i=1:4等价于for i=[1 2 3 4]。
第2章基础知识本章着重介绍MATLAB的一些基础知识,包括数据类型、基本矩阵操作、运算符和字符串处理函数。
本章是MATLAB编程的基础。
2.1 数据类型MATLAB中定义了很多种数据类型,包括字符、数值、单元、结构、java类、函数句柄等类型,用户还可以自己定义数据类型。
在MATLAB中有15种基本数据类型,每种基本数据类型均以数组/矩阵的形式出现,该矩阵可以是最小的0*0矩阵到任意大小的n维矩阵。
1.数值类型数值类型包含整数、浮点数和复数3种类型。
另外MATLAB还定义了Inf和NaN两个特殊数值。
(1)整数类型MATLAB支持1、2、4和8字节的有符号整数和无符号整数。
这8种数据类型的名称、表示范围、转换函数如表2-1所示,其中转换函数可以把其它数据类型的数值强制转换为对应的整数类型。
尽可能使用字节少的数据类型,这样可以节约存储空间和提高运算速度。
表2-1 整数类型名称范围转换函数名称范围转换函数有符号1字节整数int8() 无符号1字节整数uint8()有符号2字节整数int16() 无符号2字节整数uint16() 有符号4字节整数int32() 无符号4字节整数uint32() 有符号8字节整数int64() 无符号8字节整数uint64()(2)浮点数类型MATLAB有单精度和双精度两种浮点数,其中双精度浮点数为MATLAB默认的数据类型。
这2种数据类型的名称、存储空间、表示范围和转换函数如表2-2所示。
表2-2 浮点数类型名称存储空间表示范围转换函数单精度浮点数4字节single()双精度浮点数8字节double() (3)复数类型复数包含实部和虚部。
在MATLAB中可以用i或j来表示虚部。
例如:在命令窗口中用赋值语句产生复数5+10i,代码如下:A=5+10i例如:在命令窗口用函数complex()产生复数5+10i,具体代码如下:X=5;Y=10;z=complex(x,y)(4)Inf和NaN在MATLAB中用Inf和-Inf分别表示正无穷大和负无穷大。
除法运算中除数为0或者运算结果溢出都会导致inf或-inf的运行结果。
在MATLAB中用NaN(not a number)来表示一个既不是实数也不是复数的数值。
类似0/0、inf/inf等运算产生的结果均为NaN。
2.逻辑类型在MATLAB中逻辑类型包括true和false,分别由1和0表示。
在MATLAB中用函数logical()将任何非零的数值转换为true(即1),将数值0转换为false(即0)。
3.字符和字符串类型在MATLAB中,数据类型(char)表示一个字符。
一个char类型的1*n数组称为字符串string。
用单引号对表示字符串。
例如:str=‘I am a great person’也可以用char()函数构造字符串。
例如:str=char([65 66])4.结构体类型结构体类型是一种由若干属性(field)组成的MATLAB数组,其中的每个属性可以是任意数据类型。
例如:personel结构体,包括3个属性(Name、Score和Salary),其中Name是一个字符串,Score是一个数值,Salary是一个1*5的向量。
(1)结构体数组的构造构造一个结构体(数组)有如下两种方法。
#利用赋值语句通过赋值语句为结构体中的每个指定属性赋值,从而构造结构体。
例如:建立‘Clayton’、98.5、工资为4500 5100 5600 5200 4800的结构体。
=’Clayton’;Personel.Score=98.5;personel.Salary=[4500 5100 5600 5200 4800];personelpersonel(2).Name=’dana’;personel(2).Score=100;personel(2).Salary=[6700 9000];personel#利用函数struct()在MATLAB中,函数struct()的具体用法如下:StrArray=struct(‘field1’,val1,’field2’,val2,……)例如:Personel=struct(’Name’,{‘Clayton’,’Dana’,’John’},’Score’,{98.5,100,[]},’Salary’,{[450 0 5100 5600 5200 4800],[6700 9000],[]})(2)结构体数组的访问通过结构体数组的下标引用,可以访问任意元素的所有属性,同时可以对属性进行赋值。
2.2 基本矩阵操作在MATLAB中,所有的数据均以二维、三维或高维矩阵的形式存储,每个矩阵的单元可以是数值类型、逻辑类型、字符类型或者其他任何数据类型。
对于标量,可以用1*1矩阵来表示,对于一组n个数据,可以用1*n矩阵来表示;对于多维数组,可以用多维矩阵来表示。
在MATLAB中,可以用whos来显示数据的类型、存储空间等信息。
2.2.1 矩阵的构造1.简单矩阵构造最简单的方法是采用矩阵构造符[]。
构造1*n矩阵(行向量)时,可以将各元素依次放入矩阵构造符[]内,并以空格或者逗号分隔;构造m*n矩阵时,每行如上处理,并且行与行之间用分号分隔。
例如:a=[1 2 3 4] 或者a=[1,2,3,4]例如:b=[1 2 3; 4 5 6] 或者b=[1,2,3;4,5,6]2.特殊矩阵构造在MATLAB中还提供了一些函数用来构造特殊矩阵。
ones(n)或ones(m,n):产生矩阵元素全为1的矩阵。
zeros(n)或zeros(m,n):产生矩阵元素全为0的矩阵。
eye(n):产生单位矩阵,即主对角线上的元素为1,其他元素全为0。
diag(v):将向量转化为对角矩阵。
magic(n):产生魔方矩阵.rand(n)或rand(m,n):产生0~1均匀分布的随机数。
randn(n)或randn(m,n):产生均值为0且方差为1的高斯分布随机数。
randperm(n):产生整数1~n的随机排列。
3.向量构造最简单的方法是采用向量构造符:,其常用的用法如下。
(1)a:b 返回以a为起点,以1为步长,且所有取值在a与b之间的向量。
如果b 值小于a值,则MATLAB返回一个空矩阵。
(2)a:s:b 返回以a为起点,以s为步长,且所有值在a与b之间的向量。
构造向量还可以采用函数linspace()、logspace()等,如函数linspace()用于创建指定范围和步长的等距向量。
例如:a=linspace(-6,6,4)2.2.2 矩阵大小的改变1.矩阵的合并矩阵的合并就是把两个或两个以上的矩阵连接成一个新矩阵。
前面介绍的矩阵构造符[]不仅可以用于构造矩阵,还可以作为一个矩阵合并操作符。
表达式C=[A B]在水平方向合并矩阵A和B,而表达式C=[A;B]在竖直方向合并矩阵A和B。
注意:矩阵合并时要符合维数的约束。
如果水平方向合并,则两个矩阵行数必须相同;如果竖直方向合并,则两个矩阵列数必须相同。
矩阵合并除了使用合并符[]外,还可以使用矩阵合并函数。
矩阵合并函数的描述和基本调用格式如表2-4所示。
表2-4 矩阵合并函数函数名函数描述函数调用格式cat 在指定的方向合并矩阵cat(1,a,b) 与[A;B]一致cat(2,a,b) 与[A B]一致horzcat 在水平方向合并矩阵Horzcat(a,b)vertcat 在竖直方向合并矩阵Vertcat(a,b)repmat 通过复制矩阵来构造新矩阵Repmat(A,M,N)得到m*n块矩阵,其中每块都是A blkdiag 用已知矩阵来构造块对角化矩阵Blkdiag(A,B) 得到以矩阵A和B为对角块的矩阵2.矩阵行列的删除要删除矩阵的某一行或者某一列,只需将该行或该列赋予一个空矩阵[]即可。
例如:A=magic(3);A(2,:)=[];2.2.3 矩阵下标引用通过矩阵下标来存取元素值的方法,包括访问单个元素、先行引用元素和访问多个元素等。
1. 访问单个元素若A是二维矩阵,可以用A(i,j)来表示第i行第j列的元素。
若A是多维矩阵,可以通过指定多个下标来实现对其访问。
2. 线性引用元素对于矩阵A,线性引用元素的格式为A(k)。
通常这样的引用用于行向量或列向量,但也可用于二维矩阵。
Matlab按列优先排列的一个长列向量格式来存储矩阵元素,并不是按其命令行输出格式来存储的。
按照长列向量格式存取元素值就是线性引用元素。
如矩阵A=[2 6 9 ;4 2 8;3 5 1],在内存中是被存储成以2、4、3、6、2、5、9、8、1排列的一个列向量。
它第3行第2列的元素,也就是内存中的第6个元素,其值为5。
要访问这个元素既可以用A(3,2),也可以用A(6)。
一般地,设矩阵A是一个M*N的矩阵,矩阵元素A(i,j)等同于A((j-1)*M+i)。
如上,A(3,2)=A((2-1)*3+3)=A(6)。
3. 访问多个元素操作符:可以用来表示矩阵的多个元素。
若A是二维矩阵,其主要用法如下:A(:,:) 返回矩阵A的所有元素。
A(i,: ) 返回矩阵A的第i行的所有元素。
A(i,k1:k2) 返回矩阵A的第i行的自k1到k2列的所有元素。
A(:,j) 返回矩阵A的第j列的所有元素。
A(k1:k2,j) 返回矩阵A的第j列的自k1到k2行的所有元素。
若A是多维矩阵,也可以通过类似的方法实现对其访问。
操作符:也是向量构造符,可以用它来表示非相邻的多个元素。
例如:读取矩阵A第1,4,7列的元素,其中A=1:8,具体代码如下:A=1:8B=A(1:3:7)2.2.4 矩阵信息的获取矩阵的信息包括矩阵的尺寸、元素的数据类型和矩阵的数据结构等。
1.矩阵的尺寸信息矩阵的尺寸函数可以得到矩阵的形状和大小信息,这些函数如表2-5所示。
表2-5 矩阵尺寸函数函数名函数描述基本调用格式Size 矩阵各方向的长度D=size(x)M=size(x,dim) 返回各方向的长度,以向量方式存储。
返回指定方向的长度Length 矩阵各方向中的最长长度N=length(x) 相当于max(size(x))Ndims 矩阵的维数N=ndims(A) 矩阵的维数Numel 矩阵的元素个数N=numel(A) 矩阵的元素个数2.元素的数据类型查询元素数据类型信息的部分函数如表2-6所示。
函数名函数描述基本调用格式Class 返回输入数据的数据类型Isa 判段输入数据是否是指定数据类型Ischar 判断输入数据是否为字符串Isfloat 判断输入数据是否为浮点数Isinteger 判断输入数据是否为整数Islogical 判断输入数据是否为逻辑型Isnumeric 判断输入数据是否为数值型Isreal 判断输入数据是否为实数Isstruct 判断输入数据是否为结构体3.矩阵的数据结构判断矩阵是否为某种指定数据结构的函数如表2-7所示。