子矩阵是指由矩阵中的一部分元素构成的矩阵。我们既可以用冒号表达式作为引用矩阵的下标吗,也可以直接用单个的冒号来作为行下标或列下标,其代表全部行或全部列。则有先关概念如下:
A(i,:) 第i行的全部元素
A(:,j) 第j列的全部元素
A(i:i+m,k:k+m) 第i~i+m行内,
且在第k~k+m列中的所有元素
A(i:i+m,:) 第i~i+m行的全部元素
%创建3行5列的矩阵A
>> A=[1,2,3,4,5;6,7,8,9,10;11,12,13,14,15]
A =
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
%利用冒号表达式获得子矩阵,其表达的是矩阵中第1、2行的元素。
>> A(1:2,:)
ans =
1 2 3 4 5
6 7 8 9 10
%表示引用矩阵第2、3行的第1、3、5列的元素
>> A(2:3,1:3:5)
ans =
6 8 10
11 13 15
我们还可以用一般向量和end运算符来作为下标,从而获得子矩阵。end表示某一维的末尾元素下标。例如:
%创建4行5列的矩阵A
>> A=[1,2,3,4,5;6,7,8,9,10;11,12,13,14,15;16,17,18,19,20];
>> A(end,:) %引用矩阵A的最后一行元素
ans =
16 17 18 19 20
%表示引用第1、4行的第3到最后一列元素
>> A([1,4],3:end)
ans =
3 4 5
18 19 20