矩阵操作(合并; 共轭转置;矩阵的加减乘除幂运算;矩阵元素的查找,排序,求和,求积,差分)

矩阵合并

a=zeros(2,3)
b=ones(2,4)
c=7:9
d=[a b] % 水平合并,行数相同
e=[a;c] % 垂直合并,列数相同
a =
     0     0     0
     0     0     0
b =
     1     1     1     1
     1     1     1     1
c =
     7     8     9
d =
     0     0     0     1     1     1     1
     0     0     0     1     1     1     1
e =
     0     0     0
     0     0     0
     7     8     9
>> 

删除行、列:(赋予空矩阵/数组)

a=magic(4)
a(3,:)=[]
a(3,:)
a =
    16     2     3    13
     5    11    10     8
     9     7     6    12
     4    14    15     1
a =
    16     2     3    13
     5    11    10     8
     4    14    15     1
ans =
     4    14    15     1
>> 

共轭转置

a=[2i-5 3i+1;8 5i]
b=a' % 共轭转置
c=conj(a') % 只转置
d= a.' % 只转置
a =
  -5.0000 + 2.0000i   1.0000 + 3.0000i
   8.0000 + 0.0000i   0.0000 + 5.0000i
b =
  -5.0000 - 2.0000i   8.0000 + 0.0000i
   1.0000 - 3.0000i   0.0000 - 5.0000i
c =
  -5.0000 + 2.0000i   8.0000 + 0.0000i
   1.0000 + 3.0000i   0.0000 + 5.0000i
d =
  -5.0000 + 2.0000i   8.0000 + 0.0000i
   1.0000 + 3.0000i   0.0000 + 5.0000i
>> 

矩阵加减法需要维度相同,但可以和标量运算
单个数在matlab中是以标量形式存储的

>> a=magic(3)
a =
     8     1     6
     3     5     7
     4     9     2
>> a+2
ans =
    10     3     8
     5     7     9
     6    11     4

矩阵的加减乘除幂运算

矩阵乘法除法

乘法只要AB满足线代的可乘条件就行

除法则比较复杂,有左除右除两种

a=magic(3)
b=pascal(3)
c=a/b % 要求a,b列数相同(c*b=a,a是被除数,b是除数)
d=a\b % 要求a, b行数相同 (a*d=b,b是被除数,a是除数)
a =
     8     1     6
     3     5     7
     4     9     2
b =
     1     1     1
     1     2     3
     1     3     6
c =
    27   -31    12
     1     2     0
   -13    29   -12
d =
    0.0667    0.0500    0.0972
    0.0667    0.3000    0.6389
    0.0667    0.0500   -0.0694
>> c*b
ans =
     8     1     6
     3     5     7
     4     9     2
>> a*d
ans =
    1.0000    1.0000    1.0000
    1.0000    2.0000    3.0000
    1.0000    3.0000    6.0000
>> 

乘方:

a=pascal(3)   % 对称正定,元素为pascal三角,逆矩阵的元素均为整数
b=a^2
c=a*a
a =
     1     1     1
     1     2     3
     1     3     6
b =
     3     6    10
     6    14    25
    10    25    46
c =
     3     6    10
     6    14    25
    10    25    46
>> 

矩阵元素的查找,排序,求和,求积,差分

矩阵元素的查找

a=pascal(3)   % 对称正定,元素为pascal三角,逆矩阵的元素均为整数
b=find(a)  % 返回矩阵a中非零元素的单下标
c=find(a>5)
a(find(a==1))=10
a =
     1     1     1
     1     2     3
     1     3     6
b =
     1
     2
     3
     4
     5
     6
     7
     8
     9
c =
     9
a =
    10    10    10
    10     2     3
    10     3     6
>> 

矩阵元素排序:

a=magic(3)   
b=sort(a)  % 按列升序排序
c=sort(a,2) % 按行升序排序
d=sort(a,'descend') % 按列降序排序
e=sort(a,2,'descend') % 按行降序排序
a =
     8     1     6
     3     5     7
     4     9     2
b =
     3     1     2
     4     5     6
     8     9     7
c =
     1     6     8
     3     5     7
     2     4     9
d =
     8     9     7
     4     5     6
     3     1     2
e =
     8     6     1
     7     5     3
     9     4     2
>> 

向量元素排序

a=[2 34 5 7 1 3 7 45]
b=sort(a) % 升序
a =
     2    34     5     7     1     3     7    45
b =
     1     2     3     5     7     7    34    45
>> 

矩阵元素求和

a=magic(3)
b=sum(a) % 每列求和
c=sum(a,2)  % 每行求和
d=cumsum(a)  % 按列递次求和
e=cumsum(a,2)
f=sum(sum(a))  % 所有元素求和
a =
     8     1     6
     3     5     7
     4     9     2
b =
    15    15    15
c =
    15
    15
    15
d =
     8     1     6
    11     6    13
    15    15    15
e =
     8     9    15
     3     8    15
     4    13    15
f =
    45
>> 

矩阵元素求积

a=magic(3)
b=prod(a) % 每列求积
c=prod(a,2)  % 每行求积
d=cumprod(a)  % 按列递次求积
e=cumprod(a,2)
a =
     8     1     6
     3     5     7
     4     9     2
b =
    96    45    84
c =
    48
   105
    72
d =
     8     1     6
    24     5    42
    96    45    84
e =
     8     8    48
     3    15   105
     4    36    72
>> 

矩阵元素差分

a=magic(3)
b=diff(a) % 各列差分,大行号减小行号,同diff(a,1,1)
c=diff(a,2)% 二阶列差分,即对一阶差分再进行一阶差分运算,相当于diff(b)
d=diff(a,1,2) % 各行差分
a =
     8     1     6
     3     5     7
     4     9     2
b =
    -5     4     1
     1     4    -5
c =
     6     0    -6
d =
    -7     5
     2     2
     5    -7
>> 
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值