3  进行数组运算的常用函数

在MATLAB中有一些常用函数,这些函数在日常的编程计算过程中会经常遇到,一般是基本的数学概念在MATLAB中的函数表达方式。这些函数在MATLAB中可以同时作用于整个矩阵或者数组,应用起来非常方便,不需要再另写循环程序来对各元素分别进行计算。掌握这些函数是进一步学习的基础。MATLAB人性化的地方在于其自带函数基本是按照相对应的英文名称缩写而来,所以便于记忆。

3.1 函数数组运算规则的定义

对于(m´n)的数组,函数的数组运算规则是指:

也就是说函数的数组运算是指将函数作用于矩阵中的每一个元素,并将最后的结果储存为与原矩阵行列数相同的矩阵。

3.2 进行数组运算的常用函数

本小节列出进行数组运算的常用函数。常用基本数学函数见表2-2,常用三角函数见表2-3,常用适用于向量的函数见表2-4。

表2-2         MATLAB常用的基本数学函数

函    数

说    明

函    数

说    明

纯量的绝对值或向量的长度

将实数x化为分数表示

复数z的相角

符号函数 当x<0时,sign(x)=-1; 当x=0时,sign(x)=0;  当x>0时,sign(x)=1

求x除以y的余数

复数z的实部

整数x和y的最大公因数

复数z的虚部

整数x和y的最小公倍数

复数z的共轭复数

自然指数

四舍五入至最近整数

无论正负,向0的方向取最近整数

以e为底的对数,即自然对数

舍去法取最近整数

以2为底的对数

进一法取最近整数

以10为底的对数

表2-3        MATLAB常用的三角函数

函     数

说     明

函     数

说     明

正弦函数

超越正弦函数

余弦函数

超越余弦函数

正切函数

超越正切函数

反正弦函数

反超越正弦函数

反余弦函数

反超越余弦函数

反正切函数

反超越正切函数

四象限的反正切函数

表2-4        适用于向量的常用函数

函     数

说     明

函     数

说     明

向量x的元素的最小值

向量x的欧氏长度,也就是范数

向量x的元素的最大值

向量x的元素总和

向量x的元素的平均值

向量x的元素总乘积

向量x的元素的中位数

向量x的累计元素总和

向量x的元素的标准差

向量x的累计元素总乘积

向量x的相邻元素的差

向量x和y的内积

对向量x的元素进行排序

cross(x, y)

向量x和y的外积

【例2-9】  数组运算示例。

1     2    4     9

16    25   36    49

>> b=sqrt(a)                   %  应用函数对矩阵中的每一个元素分别开方

1.0000    1.4142   2.0000    3.0000

4.0000    5.0000   6.0000    7.0000

4.  查询矩阵信息

在矩阵的使用过程中,经常需要查询某个矩阵的一些基本信息,比如行数、列数、总元素个数、各元素的数据类型等,这就需要我们掌握矩阵信息查询函数。

4.1 矩阵的形状信息

表2-5中的函数,可以用来查询一个矩阵形状的信息。

表2-5        矩阵形状信息

函数名称

函数功能

函数名称

函数功能

返回矩阵最长的一维的长度

返回矩阵的元素个数

返回矩阵的维数

返回矩阵各维的长度

下面举例说明如何使用这些函数。

【例2-10】  查询矩阵形状信息示例。

>> rand('state', 0);        %  设置随机种子,便于读者验证

>> A = rand(5) * 10          %  生成5´5的随机矩阵

9.5013    7.6210    6.1543   4.0571    0.5789

2.3114    4.5647    7.9194   9.3547    3.5287

6.0684    0.1850    9.2181   9.1690    8.1317

4.8598   8.2141    7.3821    4.1027   0.0986

8.9130    4.4470    1.7627   8.9365    1.3889

>> A(4:5, :) = []            %  删除第4行和第5行

9.5013    7.6210    6.1543   4.0571    0.5789

2.3114    4.5647    7.9194   9.3547    3.5287

6.0684    0.1850   9.2181    9.1690    8.1317

>> size(A)

3     5

>>a= length(A)

>> b=sum(A(:))/numel(A)      %  使用Sum和numel函数计算矩阵A的平均值

>> c=mean(mean(A))             %  使用mean函数验证矩阵A的平均值

4.2 矩阵的数据类型

与其他编程语言类似,MATLAB提供有多种数据类型,相关内容将在第3章中介绍。本小节介绍用来查询数据类型的函数。

表2-6中的函数,可以用来查询一个矩阵中所用的数据类型。

表2-6       判断数据类型函数

函数名称

函数功能

函数名称

函数功能

查询输入矩阵是否是给定类型

查询输入矩阵是否是整数数组

查询输入矩阵是否是cell数组

查询输入矩阵是否是逻辑数组

查询输入矩阵是否是由字符串构成的cell数组

查询输入矩阵是否是数值数组

查询输入矩阵是否是字符串

查询输入矩阵是否是实数

查询输入矩阵是否是浮点数组

查询输入矩阵是否是structure数组

4.3  矩阵的数据结构

表2-7中的函数,可以用来查询一个矩阵中所用的数据结构。

表2-7       数据的结构查询函数

函数名称

函数功能

函数名称

函数功能

查询输入矩阵是否为空

查询输入矩阵是否是稀疏矩阵

查询输入矩阵是否是1´1标量

查询输入矩阵是否是向量