矩阵操作及运算
一、矩阵与数组的定义
矩阵最早来自于方程组的系数即常数所构成的方阵。
数组是在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称之为数组。
在Matlab中,一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可以分为数值数组、字符数组、单元数组、结构数组等各种类别。
二、矩阵与数组的区别
(1)矩阵是数学的概念,而数组是计算机程序设计领域的概念;
(2)作为一种变换或映射算符的体现,矩阵运算有着明确而严格的数学规则。而数组运算是Matlab软件定义的规则,其目的是为了使数据管理方便,操作简单,命令形式自然,执行计算有效。
三、矩阵与数组的联系
二者联系主要体现在:在Matlab中,矩阵是以数组的形式存在的。因此,一维数组相当于向量;二维数组相当于矩阵。所以矩阵是数组的子集。
四、矩阵的基本操作
对矩阵的基本操作,主要有:
1、矩阵的构建、
2、矩阵维度和矩阵大小的改变、
3、矩阵的索引、
4、矩阵的属性信息的获取、
5、矩阵结构的改变等。
五、矩阵下标的引用
1、A(1)
将二维矩阵A重组为一维数组,返回数组中第一个元素。
>> A=[1 2 3 4 5;
6 7 8 9 10;
11 12 13 14 15 ];
>> A(1)
ans =
1
2、A(: , j)
返回二维矩阵A中第 j 列 列向量
>> A(:,2)
ans =
2
7
12
3、A( i , :)
返回二维矩阵A中第 i 行 行向量
4、A(: , j : k)
返回二维矩阵A中第 j 列到第 k列 列向量组成的子矩阵
5、A( i : k , :)
返回二维矩阵A中第 i 行到第 k行 行向量组成的子矩阵
6、A( i : k , j : m)
返回二维矩阵A中第 i 行到第 k 行 行向量和第 j 列到第 m 列 列向量的交集组成的子矩阵
7、A(:)
将二维矩阵A中得每列合并成一个列向量
>> A(:)
ans =
1
6
11
2
7
12
3
8
13
4
9
14
5
10
15
8、A( j : k)
返回一个行向量,其元素为A(:)中的第 j 个元素到第 k 个元素
>> A( 2 : 4)
ans =
6 11 2
9、A([ j1 j2…])
返回一个行向量,其元素为A(:)中的第 j1,j2…个元素
>> A([ 2 3 5])
ans =
6 11 7
10、A(: , [ j1 j2 …])
返回矩阵A的第 j1 列、第 j2 列等的列向量
11、A([ i1 i2 …] : ,)
返回矩阵A的第 i1 行、第 i2 行等的行向量
12、A([ i1 i2 …] , [ j1 j2 …])
返回矩阵A的第 j1列、第 j2 列等和矩阵A的第 i1 行、第 i2 行等的元素
13、A(:,end)
表示引用最后一列元素,“:”表示所有列或行,“end”表示最后一列或列,“end-n”表示倒数第n行或列
【说明】
Matlab中数组元素是按列存储,即1,6,11,2,7......,也就是说先行后列,对于3维数组呢,就是先行后列再页。