MATLAB语言不仅提供了丰富的数据类型,如实数、复数、向量、矩阵、字符串、多维数组、结构体、类和对象等,而且提供了众多的内置功能函数。这些数据在计算机中都以常量和变量的形式出现。
在程序运行过程中,其值不会改变的量叫常量,MATLAB中的常量有两种:数值数据和字符串数据。其中数值数据又分为整型数据、浮点型数据和复数型数据。
1.数值数据
(1)整型数据
整型数据是不带小数的数,有带符号整数和无符号整数之分。表1-2是MATLAB整型数据的类型、取值范围和对应的转换函数。
表1-2 MATLAB整型数据
(续)
【例1-1】 >> x=int8(327),其结果如下:
带符号8位整型数据的最大值是127,int8函数转换时只输出最大值。
(2)浮点型数据
浮点型数据有单精度(single)和双精度(double)之分,单精度型数据在内存中占4字节,双精度型实数在内存中占8字节,双精度型的数据精度更高。在MATLAB中,数据默认为双精度型。single函数可以将其他类型的数据转换为单精度型,double函数可以将其他类型的数据转换为双精度型。
(3)复数型数据
复数型数据包括实部和虚部两个部分,实部和虚部默认为双精度型。在MATLAB中,虚数单位用i或j表示、例如,1+2i与1+2j表示的是同一个复数,也可以写成1+2*i或1+2*j,这里将i或j看作运算量参与表达式的运算。
如果构成一个复数的实部或虚部不是常量,则使用complex函数生成复数。例如,complex(1,a)生成一个复数,其实部为1,虚部为a。可以使用real函数求复数的实部,imag函数求复数的虚部,abs函数求复数的模,angl函数求复数的幅角,conj函数求复数的共轭复数。
【例1-2】 复数z1=3+4i、z2=1+2i、 ,计算
(4)数值的输出格式
MATLAB数值通常以不带小数的整数格式或带4位小数的浮点格式输出。如果输出结果中所有数值都是整数,则以整数格式输出;如果输出结果中有一个或多个元素是非整数,则以浮点数格式输出。MATLAB的运算总是以所能达到的最高精度计算,输出格式不会影响计算的精度,现在的计算机精度一般为32位小数。使用format命令可以改变屏幕输出的格式,也可以通过命令窗口的下拉菜单来改变屏幕输出的格式。format命令及其屏幕输出格式见表1-3。
表1-3 format命令及其屏幕输出格式
(续)
2.字符串数据
字符串也是常量的一种,是由若干个计算机系统中采用的字符组成的,由于字符串的特殊性,需要进行一些说明。
(1)字符串表示
在MATLAB中字符串是用单引号括起来的字符序列来表示的。字符串中的每个字符(包括空格)都是字符串变量(矩阵或向量)中的一个元素,字符串中的字符以ASCII码形式存储并区分大小,用函数abs可以看到字符的ASCII码。在MATLAB中,字符串和字符矩阵基本上是等价的,例如:>> s=['HAPPY']等价于>> s='HAPPY'。
(2)常用字符串函数
MATLAB常用字符串函数如表1-4所示。
表1-4 MATLAB常用字符串函数
(续)
【例1-3】 字符串举例。
比较b*2和str2num(b)*2。
变量是保存数据信息的一种最基本的数据类型。变量的命名应遵循如下规则:变量名必须以字母开头,变量名可以由字母、数字和下划线混合组成,变量名区分字母大小写。MATLAB保留了一些具有特定意义的永久变量,读者编程时可以直接使用,并尽量避免另外自定义,表1-5为MATLAB软件永久变量表。
表1-5 MATLAB软件永久变量表
根据运算性质不同,变量之间的运算可分为算术运算、关系运算和逻辑运算等,MATLAB运算以一定的规则进行,有些根据运算符来进行,有些则根据MATLAB命令函数来进行。
1.运算符
运算符有三类,分别是算术运算符、关系运算符和逻辑运算符。
(1)算术运算符
算术运算的表达式由字母或数字用运算符连接而成。MATLAB常用的算术运算符如表1-6所示。
表1-6 MATLAB常用的算术运算符
(2)关系运算符
关系运算主要用于比较数、字符串和矩阵之间的大小或不等关系,其结果只能为0(代表“假”,表示该关系不成立)或1(代表“真”,表示该关系成立)。MATLAB常用的关系运算符如表1-7所示。
表1-7 MATLAB常用的关系运算符
(3)逻辑运算符
逻辑运算的逻辑量只有0(假)和1(真)两个值,逻辑运算符如表1-8所示。
(4)各种运算符的优先级
在三种运算符中,算术运算符的优先级最高,其次是关系运算符,优先级最低的是逻辑运算符,但逻辑非的优先级别最高。
表1-8 逻辑运算符
2.基本函数
MATLAB提供了丰富的数学函数,如三角函数、对数函数、指数函数和复数函数等。表1-9列出了部分常用的数学函数。
表1-9 部分常用的数学函数
MATLAB还提供了一些关系运算函数,如表1-10所示。
表1-10 部分关系运算函数
矩阵是MATLAB数据处理的基本单元,MATLAB中的运算都是基于矩阵进行操作的。
1.矩阵赋值
MATLAB中的矩阵元素的行号和列号称为该元素的下标,是通过“( )”中的数字(行、列的标号)来标识的。矩阵元素可以通过其下标来引用,如 X ( i , j )表示 X 第 i 行第 j 列的元素。矩阵的赋值必须使用方括号“[]”包括矩阵的所有元素,同一行的元素之间必须用空格或逗号分隔,不同行之间必须用分号或回车符分隔,如:
MATLAB中矩阵元素除了从键盘直接输入外,也可以从文件或数据库中读取,详细内容可以参见第4章的相关内容。
为编程方便,MATLAB还提供了部分特殊的矩阵函数,如表1-11所示。
表1-11 部分特殊矩阵函数
MATLAB还有一种符号矩阵,可用于行列式公式推导,例如:
2.矩阵运算
MATLAB矩阵的运算有矩阵的算术运算、矩阵的关系运算和矩阵的逻辑运算,其中矩阵的关系运算和矩阵的逻辑运算主要是针对两个矩阵对应元素进行的,这里重点介绍矩阵的算术运算。表1-12是矩阵算术运算符及其说明。
表1-12 矩阵算术运算符及其说明
(续)
矩阵的函数运算是矩阵运算最实用的部分,MATLAB函数库提供了一些常用的矩阵运算函数,如表1-13所示。
表1-13 常用的矩阵运算函数