1、普通矩阵的建立
不管是任何矩阵(向量),都可以直接按照行方式输入每个元素:同一行的元素用逗号或者用空格符来分割,且空格个数不限;不同的行用分号分割。所有的元素都处于一方括号[]内。比如:
>>Matrix_2D=[1,2,3;4,5,6;7,8,9] %生成一个3×3的二维矩阵
用size() 函数可以计算一个矩阵的行数和列数。
2、创建三维数组的三种方法
(1)使用下标创建三维数组
在Matlab命令框中输入以下代码可以创建简单的三维数组:
for i=1:2
for j=1:2
for k=1:2
A(i,j,k)=i+j+k;
end
end
end
(2)使用低维数组创建三维数组
可以先创建一个二维数组,然后再通过第三维数组与其关系生成第三维数组;
D2=[1,2,3;4,5,6;7,8,9];
D3(:,:,1)=D2;
D3(:,:,2)=2*D2;
D3(:,:,3)=3*D2;
(3)使用创建函数创建三维数组
使用cat命令来创建高维数组。cat命令:C=cat(dim,A1,A2,A3,A4......) 其中dim表示的是创建数组的维度,A1,A2,A3,A4表示的是各维度上的数组。
D2=[1,2,3;4,5,6;7,8,9];
C=cat(3,D2,2*D2,3*D2);
3、矩阵的访问
访问矩阵中的元素有两种方式,一种是根据下标访问,另一种是根据序号访问。
以二维矩阵为例,根据下标访问时,将需要访问的矩阵元素的行列坐标写在圆括号内。比如:A(2,3)
可以使用“:”来访问所有坐标,或用end访问末尾坐标;例如:
矩阵访问一律用(),元胞数组用{}
a(i,j)%第i行第j列队元素
a(:,j)%第j列的所有元素
a(2:end,j)%第j列中第2行到最后一行的元素
a(:,3:5)%第3〜5列的所有元素
a(x)%第x个元素(x为从最左边第1列开始编号,若a为4行5列,则a(10)==a(2,3))
另一种是根据序号来访问矩阵元素,这种访问方式是将矩阵先转换为一维的向量,然后根据每个元素在该向量中的序号来访问元素,书写时将需要访问的元素序号写在圆括号内即可,如A(10) ; 也可以使用“:”访问所有或者部分序号,用end访问末尾序号。在MATLAB中所有二维转换为一维的情况都是按照列优先的顺序来访问的。
两种方式的转换:
sub2ind函数
sub2ind is used to determine the equivalent single index corresponding to a given set of subscript values.
二维矩阵: IND = sub2ind(SIZ,I,J)
SIZ是转换矩阵的大小,一般用size函数求得;
I是下标中的行数,J是下标中的列数;
返回值IND是转化后对应的序列号(索引号);
ind2sub函数
ind2sub和sub2ind这对函数,是互逆的一对函数。ind2sub把数组或者矩阵的线性索引转化为相应的下标;sub2ind则正好相反,将下标转化为线性索引。