正如matlab(矩阵实验室)这个名字一样,matlab的数据结构只有矩阵(array)一种形式(可细分为普通矩阵和稀疏矩阵)。
单个的数就是1*1的矩阵;
数组或向量就是1*n或n*1的矩阵。
事实上对于matlab来说数、数组或向量和二维矩阵在本质上没有任何区别,他们的维数都是2,一切都是以矩阵的形式保存的。
*******************************************************************************************
一维数组相当于向量,二维数组相当于矩阵,所以矩阵是数组的子集。
1.数组的运算是指数组对应元素之间的运算,也称点运算.
2.矩阵是一个二维数组,所以矩阵的加、减、数乘等运算与数组运算是一致的。
3.矩阵的乘法、乘方和除法有特殊的数学含义,并不是数组对应元素的运算.
但有两点要注意:
(1)对于乘法、乘方和除法等三种运算,矩阵运算与数组运算的运算符及含义都不同:矩阵运算按线性变换定义,使用通常符号;数组运算按对应元素运算定义,使用点运算符;
(2)数与矩阵加减、矩阵除法在数学是没有意义的,在MATLAB中为简便起见,定义了这两类运算。
****************************************************************************************
这是二者最直观的区别。因为矩阵是一个数学概念(线性代数里的),数组是个计算机上的概念。
数组运算:
转置 A.' %非共轭转置,相当于(conj(A'))
数组加与减 A+B与A-B %对应元素之间加减
数乘数组 k.*A或A.*k % k乘A的每个元素
数与数组加减 k+A与k-A %k加(减)A的每个元素
数组乘数组 A.*B
数组乘方 A.^k %A的每个元素进行k次方运算
k.^A %以k底的,分别以A的元素为指数求幂值
数除以数组 k./A和A.\k % k分别被B的元素除
数组除法 左除A.\B,右除B./A
矩阵运算:
矩阵转置 A' %共轭转置
加减 A+B A-B
数乘矩阵 k*A或A*k %上三项同数组运算
矩阵乘法 A*B %按数学定义的矩阵乘法规则
矩阵乘方 A^k %k个矩阵A相乘
数与矩阵加减 k+A与k-A %等价于k*ones(size(A))+-A
矩阵除法 左除A\B,右除B/A %分别为AX=B和XA=B的解
*****************************************************************************************************
例:
A=[1 2;3 4];B=[4 3;2 1];
r1=100+A
r1 =
101 102
103 104
r2_1=A*B,r2_2=A.*B
r2_1 =
8 5
20 13
r2_2 =
4 6
6 4
r3_1=A\B,r3_2=A.\B
r3_1 =
-6.0000 -5.0000
5.0000 4.0000
r3_2 =
4.0000 1.5000
0.6667 0.2500
r4_1=B/A,r4_2=B./A
r4_1 =
-3.5000 2.5000
-2.5000 1.5000
r4_2 =
4.0000 1.5000
0.6667 0.2500
r5_1=A.^2,r5_2=A^2
r5_1 =
1 4
9 16
r5_2 =
7 10
15 22
r6_1=2.^A
r6_1 =
2 4
8 16
*****************************************************************************************
size(a)表示矩阵每个维度的长度
比如size([1 2 3;4 5 6])
等于[2 3]
表示他有2行3列
size([1 2 3])
等于[1 3]
表示他有1行3列
另外size(a,n)表示矩阵a在第n个维度下的长度。
比如size([1 2 3;4 5 6],1)
等于2,表示有2行
size([1 2 3;4 5 6],2)
等于3,表示有3列
length(a)表示矩阵a的最大的长度,即max(size(a))
比如length([1 2 3;4 5 6])
等于3,因为2和3中最大是3
当a是向量时,即表示向量的元素个数,因为向量总是1×n或n×1的,而n一定大于或等于1.所以得到的结果一定是n
ndims(a)表示矩阵a的维数,即length(size(a))
比如ndims([1 2 3;4 5 6])
等于2,因为他是二维矩阵
matlab认为向量也是二维矩阵,只不过其中一个维度的长为1.
因此ndims([1 2 3])也等于2
我们可以构造一个三维甚至更高维度的矩阵,
比如a=cat(3,[1 2 3 4;5 6 7 8],[9 8 7 6;5 4 3 2])
他除了行和列以外还有一个维度,我们暂且把它叫做高度。
也就是说a有两层,第一层是[1 2 3 4;5 6 7 8],第二层是[9 8 7 6;5 4 3 2]
此时有size(a)=[2 4 2]
即2行4列2层
length(a)=4
([2 4 2]中最大为4)
ndims(a)=3
(因为他有3个维度)