octave常用指令

单位矩阵:

 eye(3)  %3row 3col identity matrix
ans =

Diagonal Matrix

   1   0   0
   0   1   0
   0   0   1

普通矩阵:

 A=[1 3;5 7;9 11]  %normal matrix
A =

    1    3
    5    7
    9   11

通过上述可得出,行向量表示为[x x x],列向量表示为[x;x;x]

获取矩阵的维度:

size(A) % matrix dimension
ans =

   3   2

获取向量长度:

>> ma=[1 2 3 4 5 6]
ma =

   1   2   3   4   5   6

>> length(ma)  % vector length
ans =  6
>>

获取指定位置的数据:

 B=[1 2 3;5 6 7;9 10 11]
B =

    1    2    3
    5    6    7
    9   10   11

>>  B(3,1)  % 3row,1col  matrix indexes
ans =  9

获取整行数据:

>> B(2,:)
ans =

   5   6   7

获取整列数据:

>> B(:,1)
ans =

   1
   5
   9

求矩阵的逆:

A=[1 2;1 4]
A =

   1   2
   1   4

>> pinv(A)  % pseudo inverse  伪逆
ans =

   2.00000  -1.00000
  -0.50000   0.50000

>> inv(A)
ans =

   2.00000  -1.00000
  -0.50000   0.50000

生成一个4x4的矩阵,且该矩阵每行之和=每列之和=对角线之和

 A=magic(4)
A =

   16    2    3   13
    5   11   10    8
    9    7    6   12
    4   14   15    1

sum(A,1)  %求每列之和
ans =

   34   34   34   34

>> sum(A,2)  %每行之和
ans =

   34
   34
   34
   34

>> A.*eye(4)  %只留下主对角线
ans =

   16    0    0    0
    0   11    0    0
    0    0    6    0
    0    0    0    1

>> sum(sum(A.*eye(4)))  %计算对角线的和
ans =  34

>>sum(sum(A.*flipud(eye(4))))  %计算副对角线之和
ans =  34

>>flipud(eye(4)) %使单位矩阵中的主对角线变成副对角线

>> exp(A)  %以e为底数,e^x运算
ans =

   8886110.52051         7.38906        20.08554    442413.39201
       148.41316     59874.14172     22026.46579      2980.95799
      8103.08393      1096.63316       403.42879    162754.79142
        54.59815   1202604.28416   3269017.37247         2.71828

>> A+1  %矩阵中元素+1
ans =

   17    3    4   14
    6   12   11    9
   10    8    7   13
    5   15   16    2

>> abs(A)  % 计算矩阵元素中的绝对值
ans =

   16    2    3   13
    5   11   10    8
    9    7    6   12
    4   14   15    1

>> log(A)  % 运算log(X)
ans =

   2.77259   0.69315   1.09861   2.56495
   1.60944   2.39790   2.30259   2.07944
   2.19722   1.94591   1.79176   2.48491
   1.38629   2.63906   2.70805   0.00000

>> -A    %矩阵中元素的相反数
ans =

  -16   -2   -3  -13
   -5  -11  -10   -8
   -9   -7   -6  -12
   -4  -14  -15   -1

>> A'   %矩阵的转置
ans =

   16    5    9    4
    2   11    7   14
    3   10    6   15
   13    8   12    1

>> B=magic(2),C=[1 1;2 2],B+C    %两个矩阵相加;对应位置上的元素相加
B =

   4   3
   1   2

C =

   1   1
   2   2

ans =

   5   4
   3   4

>> v=max(A)  %取矩阵中每列max值
v =

   16   14   15   13

 [v,c]=max(A)      %v为矩阵中每列max值,c为max值的行位置
v =

   16   14   15   13

c =                   

   1   4   4   1

>> max(A,[],1)  %    每列的max值
ans =

   16   14   15   13

 >>max(A,[],2)  %   每行的max值
ans =

   16
   11
   12
   15

取矩阵中最大的值:

>>max(max(A))
ans =  16

>> a=[1 2 3 4]    %定义矩阵
a =

   1   2   3   4

>> a>3   %让矩阵中每个元素与3比较,返回真假值
ans =

  0  0  0  1

>> a<2  %让矩阵中每个元素与2比较,返回真假值
ans =

  1  0  0  0

>> find(a>3)   %让矩阵中每个元素与3比较,找出符合条件的值
ans =  4
>> prod(a)   %各个元素相乘
ans =  24

>>  b=[0.1 4 5 7.9];  %定义矩阵
>> floor(b)  %矩阵元素向下取整
ans =

   0   4   5   7

>> ceil(b)   %矩阵元素向上取整
ans =

   1   4   5   8

>> rand(3)   %随机生成 3x3矩阵,元素值范围0-1
ans =

   0.26595   0.83826   0.34971
   0.78031   0.31777   0.65351
   0.39140   0.97180   0.29602
 

你可能感兴趣的:(octave常用指令)