(1)通过下标来引用矩阵的元素
A(3,2)表示A矩阵第三行第二列
>>A(3,2)=200
只改变A(3,2)这一个元素的值,其他的元素并不会被影响
如果行下表和列下表大于原来矩阵的行数和列数,matlab将自动扩展原来的矩阵,并将扩展后没有赋值的元素置为0
(2)通过序号来引用
>>A=[1,2,3;4,5,6]
>>A(3)
输出结果为2
序号与下标是一一对应的,以m✖n矩阵A为例,矩阵元素A(i,j)的序号为(j-1)✖m+i
矩阵元素的序号与下标可以利用sub2ind和ind2sub函数实现互相转换
sub2ind函数:将矩阵中指定元素的行列下标转换成储存的序号。
D=sub2ind(S,I,J)
S行数和列数组成的向量
I转换矩阵元素的行下标
J转换矩阵元素的列下标
D对应元素下表的序号,他的行列数与I,J相同
矩阵A中行下表为2,列下标为3,第二行第三列的元素时6
ind2sub函数:将把矩阵元素的序号转换成对应下标
[I,J]=ind2sub(S,D)
表示一个三行三列的矩阵第1个,第3个,第5个元素的下标分别为(1 1)(3 1)(2 2)
用冒号表达式获得子矩阵
end运算
首先创建一个矩阵
引用矩阵A最后一行的原素
引用第1行和第4行的从第3列到最后一列的元素
如何删除矩阵中的元素?
利用空矩阵删除矩阵的元素,就是建立矩阵时中括号中为空
>>x=[]
x是一个空矩阵
创建一个矩阵
删除第二列和第四列元素
A=
1 3 0
7 9 6
1 4 -1
reshape()函数:
改变矩阵的形状,改变行数和列数,但不改变元素
结构不同,矩阵x是1行12列的矩阵,矩阵y是3行4列的矩阵
A(:)就等价于reshape(A,6,1)