matlab 矩阵元素的引用
1引用方式
1.1通过下标引用矩阵元素
>> A=[1,2,3;4,5,6];
>> A(1,3)=10
A =
1 2 10
4 5 6
1.2通过序号引用矩阵元素
在matlab中,矩阵元素按列存储,先存储第一列元素…最后存储最后一列元素。矩阵元素的序号,就是矩阵在内存中的排列顺序。
对于m×n的矩阵A,A(i,j)对应的序号为(j-1)×m+i
>> A=[1,2,3;4,5,6];
>> A(3)
ans =
2
2下标与序号的转换
2.1sub2ind函数
将指定元素的下标转换为序号
D=sub2ind(S,I,J)
S:行数和列数组成的向量
I:行下标
J:列下标
D:序号
当I和J为矩阵,则表示转换多个元素的下标
>> A=[1,2,3;4,5,6]
A =
1 2 3
4 5 6
>> D=sub2ind(size(A),[1,1;1,2],[1,2;3,2])
D =
1 3
5 4
2.2ind2sub函数
将指定元素的序号转换为下标
[I,J]=ind2sub(S,D)
S:行数和列数组成的向量
D:序号
I:行下标
J:列下标
>> [I,J]=ind2sub([3,3],[1,3,6,9])
I =
1 3 3 3
J =
1 1 2 3
3 利用冒号表达式获得子矩阵
A(i,:):第i行全部元素
A(:,j):第j列全部元素
A(i:i+m,:):第i行到第i+m行全部元素
A(i:i+m,k:k+n):第i行到第i+m行的第k列到第k+n列的元素
4 end运算符表示某一维末尾元素下标
>> A=[1:5;6:10;11:15]
A =
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
>> A(end,:)
ans =
11 12 13 14 15