matlab学习——矩阵的重构

简单回顾一下矩阵的扩展和删除

扩展

>> 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

猜你喜欢

转载自blog.csdn.net/qq_43264642/article/details/88649179