1. 程式人生 > >matlab 數學建摸之基礎(三)

matlab 數學建摸之基礎(三)

邏輯運算 #:與and(A,B) 或or(A,B) 非not(A) 異或運算xor(A,B)

cumsum #–求取陣列的累加和[輸入型別二輸出型別]

     矩陣中:A=sumsum(a) a的型別與A的型別相同;A的第m行,第n行=a中第一到第m行的所有的n列元素
            a=cumsum(Aaa,1)
            A=cumum(Aaa,2)--a的型別與A的型別相同;A的第m行,第m行=a中第一列到第n列的所有的第m行元素

sum #–求取陣列的和:輸入向量,輸出數值;輸入矩陣,輸出向量

         A=sum(a)--a為矩陣;A為a的列求和,輸出向量
         A=sum(a,2)--a為矩陣;A為a的行求和,輸出向量 
         A=sum(a(:))--a為矩陣;A為a的sum(a)的值,在將向量轉為數值

相乘 #–A=dot(a,b)或A=dot(a,b,dim)

  輸入向量,輸出數值:
  a為向量a,b為向量b--A=dot(a,b)--a,b的列之乘,在將其向量加值為數值A
        a=[1 2 3];b=[2 3 4]--A=1*2+2*3+3*4=20
  a為矩陣a,b為矩陣b--A=dot(a,b)--a,b各列之乘,在將其各列之和得到A
        a=[1 2 3;2 3 4] b=[1 5 6;3 6 7]--1*1+2*3=7;2*5=3*6=28;3*6+7*4=46 
  a為矩陣a,b為矩陣b--A=dot(a,b,2)--a,b各行之乘,在將其各列之和得到A
        a=[1 2 3;2 3 4] b=[1 5 6,3 6 7]--1*1+5*2+6*3=29;2*3+6*3+7*4=52

叉乘–笛卡兒積:cross(A,B)或cross(A,B,dim)–用於防止模型過於複雜而引起的過擬合

  a,b均為一維陣列取值叉來層
 一維: a=[1 2 3];b=[2 3 4] 根據笛卡兒積:i j k
                                       1 2 3 
                                       2 3 4 得到:i=(3*3-2*4) -j=(1*4-3*2) k=(1*3-2*2)
 a,b均為多維陣列取值叉來層:cross(A,B,2)
 多維: a=[1 2 3;2 3 4];b=[3 4 5;7 8 9] 根據笛卡兒積:A=-2 4 -2;-5 10 -5 由得到:-2=(1*4-2*3);4=(3*3-1*5);-2=(2*5-3*4)
                                                                                -5=(2*8-3*7);-5=(3*9-4*8);10=(4*7-2*9)