MATLAB计算机视觉经典应用
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.6.2 矩阵与数组

矩阵和数组是MATLAB运算中涉及的一组基本运算量。

(1)矩阵是一个数学概念,一般高级语言并未引入将其作为基本的运算量,但MATLAB是个例外。

一般高级语言是不认可将两个矩阵视为两个简单变量而直接进行加减乘除运算的,要完成矩阵的四则运算必须借助循环结构。MATLAB将矩阵引入作为基本运算量后,运算方式并没有完全遵守上述规定。MATLAB不但实现了矩阵的简单加减乘除运算,而且许多与矩阵相关的其他运算也因此得到了简化。

(2)在MATLAB中,二维数组和矩阵其实是数据结构形式相同的两种运算量。二维数组和矩阵的表示、建立、存储根本没有区别,区别只在于它们的运算符和运算法则不同。

(3)数组的维和向量的维是两个完全不同的概念。数组的维是从数组元素排列后所形成的空间结构去定义的:线性结构是一维,平面结构是二维,立体结构是三维,当然还有四维以至多维。向量的维相当于一维数组中的元素个数。

【例1-3】在MATLAB中,可以通过赋值直接创建矩阵。

在此用到了“[]”和“:”操作符。也可以使用预定义函数创建矩阵,input就是一个预定义函数。MATLAB中用于创建数组或矩阵的部分函数如表1-3所示。

表1-3 MATLAB中用于创建数组或矩阵的部分函数

在MATLAB中,矩阵或数组元素的访问方法有3种。

(1)全下标方式。全下标方式使用形如a(m,n,p,...)的方式访问数组元素,其中各参数为元素在各个维度上的索引值。

(2)单下标方式。单下标方式以列优先的方式将矩阵的全部元素重新排列为一个列向量,再指定元素的索引,形如a(index)。

(3)逻辑1方式。逻辑1方式建立一个与矩阵同型的逻辑型数组,抽取该数组等于1的位置对应的元素。

【例1-4】对矩阵或数组元素进行访问。

在矩阵的操作中,还可能用到“:”(冒号)操作符、end函数和空矩阵“[]”。其中,冒号操作符表示提取一整行或一整列;end函数表示下标的最大值,即最后一行或最后一列;空矩阵可以充当右值,用于删除矩阵或矩阵的一部分。右值就是赋值表达式中位于等号右边,用于赋值给其他变量或表达式的值。