Blog

懒癌晚期


Project maintained by VirusPC Hosted on GitHub Pages — Theme by mattgraham

Back Home

基本运算

>> A = [1 2; 3 4; 5 6]
A =

   1   2
   3   4
   5   6

>> B = [11 12; 13 14; 15 16]
B =

   11   12
   13   14
   15   16

>> C = [1 1; 2 2]
C =

   1   1
   2   2

>> A * C  % 矩阵的乘法
ans =

    5    5
   11   11
   17   17

>> A + B  % 矩阵的加法,也可写作A .+ B
ans =

   12   14
   16   18
   20   22

>> A<4  % ans[i, j] = (A[i, j]<4)
ans =

  1  1
  1  0
  0  0

>> find(A<4)  % 找到符合条件的元素的序号(列优先排序)
ans =

   1
   2
   4

点+操作符

对矩阵中的每个元素分别进行操作

>> A  .* B  % ans[i, j] = A[i, j] * B[i, j]
ans =

   11   24
   39   56
   75   96

>> A .^ 2  % ans[i, j] = A[i,j] ^ 2
ans =

    1    4
    9   16
   25   36

>> A  .^ B  % ans[i, j] = A[i, j] ^ B[i, j]
ans =

               1            4096
         1594323       268435456
     30517578125   2821109907456

>> 1 ./ A  % ans[i, j] = 1 / A[i, j]
ans =

   1.00000   0.50000
   0.33333   0.25000
   0.20000   0.16667

函数

>> log(A)  % 对每个元素求对数
ans =

   0.00000   0.69315
   1.09861   1.38629
   1.60944   1.79176

>> exp(A)  % ans[i, j] = e ^ A[i, j]
ans =

     2.7183     7.3891
    20.0855    54.5982
   148.4132   403.4288

>> -A  % ans[i, j] = -A[i, j]
ans =

  -1  -2
  -3  -4
  -5  -6

>> abs(-A)  % ans[i, j] = | A[i, j] |
ans =

   1   2
   3   4
   5   6

>> A=[1 2 3; 4 5 6; 7 8 9]
A =

   1   2   3
   4   5   6
   7   8   9

>> sum(A)  % 计算和:若为矩阵则计算列范围的和;若为向量则计算所有元素的和
ans =

   12   15   18

>> sum(A, 1)  % 列范围求和
ans =

   12   15   18

>> sum(A, 2)  % 行范围求和
ans =

    6
   15
   24


>> prod(A)  % 计算积,若为矩阵则计算每一列的积;若为向量则计算所有元素的积
ans =

    28    80   162

>> v = [1 2 3 0.5]
v =

   1.00000   2.00000   3.00000   0.50000

>> floor(v)  % 对每个元素向下取整
ans =

   1   2   3   0

>> ceil(v)  % 对每个元素向上取整
ans =

   1   2   3   1

>> max(rand(3), rand(3))  % 对矩阵中的每个位置,取对应位置的两个元素中最大的一个
ans =

   0.40973   0.55714   0.92148
   0.84970   0.84769   0.46497
   0

>> max(A, [], 1)  % 列范围取最大值,当存在第三个参数时,第二个参数无效,但又必须给第二个参数留个位置-_-||
>>                % 第三个参数越界时,返回原矩阵A
ans =

   7   8   9

>> max(A, [], 2)  % 行范围取最大值
ans =

   3
   6
   9

>> max(A)  % 同max(A, [], 1)
ans =

   7   8   9

>> max(max(A))  % 取矩阵中最大值
ans =  9

>> flipud(A)  % 将矩阵沿水平中线翻转
ans =

   7   8   9
   4   5   6
   1   2   3

>> A = magic(3)  % 2*2的幻方(行、列、对角线的和都相等,且元素不重复, 2*2无法构造。除方便创造矩阵外在机器学习中没啥用)
A =

   8   1   6
   3   5   7
   4   9   2

高级运算

>> A = [1 2; 3 4; 5 6]
A =

   1   2
   3   4
   5   6

>> A'  % 转置矩阵
ans =

   1   3   5
   2   4   6

>> pinv(A)  % 逆矩阵
ans =

  -1.33333  -0.33333   0.66667
   1.08333   0.33333  -0.41667

>> pinv(A)*A  % 单位矩阵 A * A^-1 = E 
ans =

   1.0000e+00   4.4409e-16
  -2.7756e-16   1.0000e+00