简单回顾一下矩阵的扩展和删除
扩展
>> A=magic(4)
A =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
>> A(6,7)=1
A =
16 2 3 13 0 0 0
5 11 10 8 0 0 0
9 7 6 12 0 0 0
4 14 15 1 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 1
>> A(:,8)=ones(6,1)
A =
16 2 3 13 0 0 0 1
5 11 10 8 0 0 0 1
9 7 6 12 0 0 0 1
4 14 15 1 0 0 0 1
0 0 0 0 0 0 0 1
0 0 0 0 0 0 1 1
删除
>> A(:,1)=[]
A =
2 3 13 0 0 0 1
11 10 8 0 0 0 1
7 6 12 0 0 0 1
14 15 1 0 0 0 1
0 0 0 0 0 0 1
0 0 0 0 0 1 1
>> A(6,:)=[]
A =
2 3 13 0 0 0 1
11 10 8 0 0 0 1
7 6 12 0 0 0 1
14 15 1 0 0 0 1
0 0 0 0 0 0 1
下面介绍一些矩阵重构的函数
函数形式 | 函数功能 | 函数形式 | 函数功能 |
B=rot90(A) | 矩阵B由矩阵A逆时针旋转90度得到 | L=tril(A,K) | L矩阵的第k条对角线以下的元素取矩阵A的元素,其余元素取0 |
B=rot90(A,k) | 矩阵B由矩阵A逆时针旋转k*90度得到 | L=tril(A) | L矩阵的主对角线以下的元素取矩阵A的元素,其余元素取0(下三角阵) |
B=flipud(A) | 矩阵B由矩阵A上下翻转而来 | L=triu(A,K) | L矩阵的第k条对角线以上的元素取矩阵A的元素,其余元素取0 |
B=reshape(A,m,n) | 将矩阵A改写成维数为m*n的矩阵B,其中m*n的等于A的元素个数 | L=tril(A) | L矩阵的主对角线以上的元素取矩阵A的元素,其余元素取0(上三角阵) |
B=fliplr(A) | 矩阵B由矩阵A左右翻转而来 |
>> a=reshape(1:9,3,3)%构造测试矩阵,将向量1:9,改写成三行三列的矩阵
a =
1 4 7
2 5 8
3 6 9
>> b=rot90(a)%将a逆时针旋转90度
b =
7 8 9
4 5 6
1 2 3
>> c=rot90(a,3)
c =
3 2 1
6 5 4
9 8 7
>> d=rot90(a,2)
d =
9 6 3
8 5 2
7 4 1
>> e=fliplr(a)%将a左右翻转
e =
7 4 1
8 5 2
9 6 3
>> f=flipud(a)%将a上下翻转
f =
3 6 9
2 5 8
1 4 7
>> clear('b','c','d','e','f')
>> b=diag(a)%取出对角线元素
b =
1
5
9
>> c=diag(b)%创造对角阵
c =
1 0 0
0 5 0
0 0 9
>> clear('b','c')
>> b=triu(a,1)%矩阵第一条对角线及以上的元素取矩阵a的元素,其余元素取0
b =
0 4 7
0 0 8
0 0 0
>> b=triu(a,2)%矩阵第二条对角线及以上的元素取矩阵a的元素,其余元素为0
b =
0 0 7
0 0 0
0 0 0
>> c=triu(a,-1)%矩阵第-1条对角线及以上的元素取矩阵a的元素,其余元素为0
c =
1 4 7
2 5 8
0 6 9
>> d=triu(a,-2)
d =
1 4 7
2 5 8
3 6 9
>> d=tril(a,1)%矩阵第一条对角线及以下的元素取为a的元素其余元素为0
d =
1 4 0
2 5 8
3 6 9
>> tril(a,2)
ans =
1 4 7
2 5 8
3 6 9
>> tril(a,-1)%矩阵第-1条对角线及其以下的部分取矩阵a的元素,其余元素取0
ans =
0 0 0
2 0 0
3 6 0
>> tril(a,-2)
ans =
0 0 0
0 0 0
3 0 0
>> triu(a)%上三角阵
ans =
1 4 7
0 5 8
0 0 9
>> tril(a)%下三角阵
ans =
1 0 0
2 5 0
3 6 9