MATLAB基礎知識——1.4矩陣元素的引用
矩陣元素的引用方式
(1)通過下標引用矩陣元素,下標必須為正整數,且用圓括號括起來。
(2)通過序號來引用,在MATLAB中矩陣元素按列存儲。序號與下標是一一對應的,以m*n的矩陣A為例,矩陣A(i,j)的序號就是(j-1)*m+i
sub2ind函數:將矩陣中指定元素的行、列下標轉換成存儲的序號。調用格式為
D=sub2ind(S,I,J),S說明要轉換的矩陣的行數和列數,通常有size函數獲取;I是要轉換元素的行下標,J是列下標,如果I和J是矩陣的話,表示要將矩陣中多個元素的行列下標進行轉換;D為序號
>> A=[1:3;4:6]
A =
1 2 3
4 5 6
//將A矩陣的(1,1),(2,1),(2,3),(2,2)下標進行轉化
>> D=sub2ind(size(A),[1,2;2,2],[1,1;3,2])
D =
1 2
6 4
ind2sub函數:將矩陣元素的序號轉換成行列下標,其調用格式為
[I,J]=ind2sub(S,D),其中S指定矩陣的行數和列數,D為序號,[I,J]為下標
//將3行3列的矩陣中序號為1,3,5的元素下標轉化
>> [i,j]=ind2sub([3,3],[1,3,5])
i =
1 3 2
j =
1 1 2
利用冒號表達式獲取子矩陣
子矩陣是指由矩陣中一部分元素構成的矩陣
A(i,:) 表示第i行的全部元素
A(i:i+m;k:k+m) 表示第i到i+m行且第k到k+m列中所有元素
end運算符:表示某一維的末尾元素的下標
利用空矩陣刪除元素
空矩陣是指沒有任何元素的矩陣,例如A[ ]。
>> A=[1:9]
A =
1 2 3 4 5 6 7 8 9
//將A矩陣中所有行的3到6列元素刪除
>> A(:,[3:6])=[]
A =
1 2 7 8 9
改變矩陣的形狀
reshape(A,m,n):在矩陣總元素不變的前提下,將矩陣A重新排列成m*n的而為矩陣
>> A=[1:9];
>> B=reshape(A,3,3)
B =
1 4 7
2 5 8
3 6 9
A(:)將矩陣A的每一列元素堆疊起來,成為一個列向量
MATLAB基礎知識——1.4矩陣元素的引用