购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.2 基本运算

MATLAB的产生是由矩阵运算推出的,因此矩阵和数组运算是MATLAB最基本、最重要的功能.本章主要介绍MATLAB的数据类型,以及矩阵和数组的基本运算.

1.2.1 数据类型

MATLAB R2023定义了15种基本的数据类型,包括整型、浮点型、字符型和逻辑型等,用户也可以定义自己的数据类型.MATLAB内部的所有数据类型都是按照数组的形式进行存储和运算的.

数值型包括整数和浮点数,其中整数包括有符号数和无符号数,浮点数包括单精度型和双精度型.在默认情况下,MATLAB R2023默认将所有数值都按照双精度浮点数类型来存储和操作,用户如果要节省存储空间,可以使用不同的数据类型.

1.常数和变量

1)常数.MATLAB的常数采用十进制表示,可以用带小数点的形式直接表示,也可以用科学计数法表示,数值的表示范围是10 -309 ~10 309 .

2)变量.变量是数值计算的基本单元,使用MATLAB变量时无须先定义,其名称是第一次合法出现时的名称,因此使用起来很便捷.

(1)变量的命名规则

●变量名区分字母的大小写.例如“A”和“a”是不同的变量.

●变量名不能超过63个字符,第63个字符后的字符被忽略.

●变量名必须以字母开头,变量名的组成可以是任意字母、数字或者下划线,但不能有空格和标点符号.

●关键字(如if、while等)不能作为变量名.

在MATLAB R2023中,所有标识符(包括函数名、文件名)都遵循变量名的命名规则.

(2)特殊变量

MATLAB有一些自己的特殊变量,是由系统预先自动定义的,当MATLAB启动时驻留在内存中,常用特殊变量如表1-4所示.

表1-4 常用特殊变量

2.整数和浮点数

(1)整数

MATLAB R2023提供了8种内置的整数类型,为了在使用时提高运行速度和存储空间,应该尽量使用字节少的数据类型,使用类型转换函数可以将各种整数类型强制相互转换.表1-5中列出了各种整数类型的数值范围和类型转换函数.

表1-5 整数的数据类型转换函数

(2)浮点数

浮点数包括单精度型(single)和双精度型(double),其中双精度型为MATLAB默认的数据类型.表1-6中列出了各种浮点数的数值范围和类型转换函数.

表1-6 浮点数的数据类型转换函数

3.复数

MATLAB用特殊变量“i”和“j”表述虚数的单位,因此,注意在编程时不要和其他变量混淆.

复数的产生可以有几种方式:

z = a + b *i或 z = a + b *j.

z = a + b i或 z = a + b j(当 b 为常数时).

z = r *exp(i*theta),其中相角theta以弧度为单位,复数 z 的实部 a = r *cos(theta);复数 z 的虚部 b = r *sin(theta).

z =complex( a b ).

MATLAB中关于复数的运算函数如表1-7所示.

表1-7 复数的运算函数

1.2.2 矩阵和数组的运算

1.矩阵的输入

下面介绍几种矩阵的常用输入方法.

(1)直接输入

这是一种最方便、最直接的方法,它适用于对象维数较少的矩阵.矩阵的输入应遵循以下基本规则:

●矩阵元素应用方括号“[]”括住.

●同行内的元素间用逗号“,”或空格隔开.

●行与行之间用分号“;”或回车键隔开.

●元素可以是数值或表达式.

例1-5 直接输入命令创建矩阵

MATLAB命令为:

运行结果为:

(2)用矩阵编辑器输入

矩阵编辑器适用于维数较大的矩阵.在调用矩阵编辑器之前必须先定义一个变量,无论是一个数值还是一个矩阵均可.输入步骤如下:

●在命令行窗口创建变量A.

●在工作区可以看到多了一个变量A,双击变量A就可打开矩阵编辑器.

●选中元素可以直接修改元素的值,修改完毕后单击关闭按钮,这时变量就被定义并保存了.

(3)用矩阵函数生成矩阵

除了逐个输入元素生成所需矩阵外,MATLAB还提供了大量的函数来创建一些特殊的矩阵.

1)生成对角矩阵:

A =diag( v k )生成主对角线方向上的第 k (整数)层元素是向量 v 的矩阵.规定:当 k =0时,它表示矩阵的主对角线;当 k >0时,它表示主对角线的平行位置上方的第 k 层;当 k <0时,它表示主对角线的平行位置下方的第| k |层.

v =diag( A k )提取矩阵 A 中主对角线方向上第 k (整数)层元素,得到的是向量 v .

2)魔方矩阵(矩阵中每行、每列及两条对角线上的元素和都相等):magic( n )生成 n 阶魔方矩阵,其中 n 为大于2的正整数.

3)随机矩阵:rand( m n )随机生成服从均匀分布的 m × n 矩阵,其元素为0~1之间的数.

此外,还有零矩阵、单位矩阵、元素全为1的矩阵等特殊矩阵,函数功能见表2-5.

表1-8 常用的矩阵函数及其功能

例1-6 利用函数生成矩阵

MATLAB命令为:

运行结果为:

例1-7 (1)生成一个3阶魔方矩阵 A ;(2)生成一个4阶单位矩阵 B .

MATLAB命令为:

运行结果为:

例1-8 输入矩阵

MATLAB命令为:

运行结果为:

例1-9 随机生成含有5个元素的行向量.

MATLAB命令为:

运行结果为:

例1-10 随机生成数值在10~30之间的含有5个元素的行向量.

MATLAB命令为:

运行结果为:

例1-11 生成三对角矩阵

MATLAB命令为:

运行结果为:

(4)通过文件生成

有时需要处理一些没有规律的数据,如果在命令行窗口输入,清除后再次使用时需要重新输入,这就增加了工作量.为解决此类问题,MATLAB提供了两种解决方案:一种方案是直接将数据作为矩阵输入到M文件中;另一种方案是将数据作为变量保存到MAT文件中.

用M文件保存矩阵的方法是在M文件编辑器中按照正常输入矩阵的方法输入数据,然后将其保存成M文件.使用时在命令行窗口直接输入文件名即可.

例1-12 用M文件保存矩阵

在M文件编辑器中输入以下矩阵,保存成文件shuju1.m:

在命令行窗口直接输入文件名将显示矩阵信息:

(5)数组生成

数组作为特殊的矩阵,即1× n 矩阵或 n ×1矩阵,除了可以作为普通的矩阵输入外,还有其他生成方式.

1)使用from:step:to生成数组,当step省略时,表示步长step=1.当step为负数时,可以创建降序的数组.

例1-13 使用from:step:to创建数组.

MATLAB命令为:

运行结果为:

2)使用linspace和logspace函数生成数组.linspace用来生成线性等分数组,logspace用来生成对数等分数组.logspace函数可以用于对数坐标的绘制.

命令格式如下:

2.矩阵和数组的算术运算

矩阵的运算规则是按照线性代数运算法则定义的,但是有着明确而严格的数学规则,而数组运算是按数组的元素逐个进行的.

(1)矩阵运算

矩阵的基本运算包括加法(+)、减法(-)、乘法(×)、左除( )、右除(/)和乘幂(^)等.另外还有其他运算,如求矩阵 A 的转置(transpose( A ))、 A 的行列式(det( A ))、 A 的秩(rank( A ))等,本书后面的章节将对这些运算进行详细介绍.

(2)数组运算

数组运算又称点运算,其加、减、乘、除和乘方运算都是对两个尺寸相同的数组进行元素对元素的运算.设数组为

α =[ a 1 a 2 ,…, a n ], β =[ b 1 b 2 ,…, b n ]

则对应的具体运算为

例1-14 数组运算示例.

例1-15 计算sin( k π/2)( k =±2,±1,0)的值.

MATLAB命令为:

运行结果为:

从以上示例可以看出,数组运算是对应元素的运算.

3.关系运算和逻辑运算

MATLAB常用的关系操作符有<(小于)、<=(小于等于)、>(大于)、>=(大于等于)、==(等于)、~=(不等于).关系运算的结果是逻辑值1(true)或0(false).常用的逻辑运算符是&(与)、|(或)、~(非)和xor(异或).

例1-16 已知矩阵 ,对它们进行简单的关系与逻辑运算.

MATLAB命令为:

运行结果为:

1.2.3 字符串

MATLAB处理字符串的功能也非常强大,字符串用单引号('')括起的一串字符表示.

1.字符串的输入

1)直接赋值:用单引号('')括起字符来直接赋值创建字符串.

●输入英文字符:

●输入中文字符:

●使用两个单引号输入字符串中的单引号:

2)多个字符串组合.

●用“,”连成长字符串:

●用“;”构成 m × n 的字符串矩阵,每行字符串元素的个数可以不同,但每行字符的总数必须相同,否则系统报错.

2.字符串常用操作

MATLAB R2023可以对字符串进行查找、比较、运行等操作.

例1-17 使用字符串函数运算.

MATLAB命令为:

运行结果为:

常用的字符串函数如表1-9所示.

表1-9 常用的字符串函数 XNK/q+lq78ReXQkFJzPdB5bpfn6kff4LXBLavGThNkgC+rCbXJGlDQ8c+C6oJP5d

点击中间区域
呼出菜单
上一章
目录
下一章
×