MATLAB中的點運算與常規運算符規則

例如 數組

 .* 點乘ide

.^ 點乘冪spa

.\ 點左除get

./ 點右除數學

解釋:點運算是對相同維數的矩陣的對應元素進行相應的運算
it

矩陣的點積,就是加點的狀況
io

就是矩陣各個對應元素相乘, 這個時候要求兩個矩陣必須一樣大小
class


矩陣的乘法,就是不加點的狀況
就是矩陣a的第一行乘以矩陣b的第一列,各個元素對應相乘而後求和做爲第一元素的值。
矩陣只有當左邊矩陣的列數等於右邊矩陣的行數時,它們才能夠相乘,乘積矩陣的行數等於左邊矩陣的行數,乘積矩陣的列數等於右邊矩陣的列數 

變量

    在MATLAB裏最核心的內容就是數組和數組運算,在MATLAB裏矩陣和數組的差異不大,矩陣做爲一種變換或映射算子的體現,在數學上有着嚴格的運算規則。數組不只承擔matlab軟件賦給它的一些運算規則,並且也實現矩陣運算的功能。
1 。 當你須要進行通常的(就像教科書講的)矩陣(向量)運算時就直接用 *(^)。
2 。 當你須要把兩(矩陣)向量 的對應位置相乘(求冪) 那就用 .*(.^)。
軟件

 

A*B(爲線性代數中定義的矩陣乘法。按乘法定義要求必須有矩陣A的列數等於矩陣B的行數)
A.*B(符號數組的乘法,爲按參量A與B對應的份量進行相乘。A與B必須爲同型陣列,或至少有一個爲標量)

例1
A=[1 2 3;4 5 6;7 8 9];B=A;A*B
ans =
   30   36   42   

    66   81   96  

  102  126  150

>> B/A

ans = 

       

 0     1     0   

  0    0    1     %矩陣這樣作是不行的!!!

>> A.*B
ans =
            

     16   25   36  

     49   64   81

>> B./A
ans =
          1    

     1    1    1   

    1    1    1

例2

>> a=[1 2 3];b=[4 5 6];c=[7 8 9];

>> a*b

??? Error using ==> mtimesInner matrix dimensions must agree.%這個是不行的!!

由於矩陣a 的行數和矩陣 b的列數並不相同,因此不能用 a*b


>> a.*b
ans =
    4   10   18  (對應位置元素相乘)

>> a.*c
ans =
    7   16   27

>> a/b
ans =
     0.41558    (這個涉及到多項式求解了。。。)

>> a/c
ans =
     0.25773
%其實是一個擬合的結果:a=kb,a=kc,k的一個擬合值。

>> a./b
ans =
        0.25         0.4         0.5
>> a./c
ans =
     0.14286        0.25     0.33333

因此,點乘或者點除都是一對一的乘或者除!!

Attention
特別注意:對於Ax=b的問題,若是A,b已知,那麼,x=A\b(x等於A左除b)

>> A=[1 2;3 4;5 6];B=[3; 7; 11];>> x=A\B
x =
           1           1
>> A*x
ans =
           3           7          11

必須牢記一點:matlab的輸入變量是矩陣,參與運算的矩陣維數必須對應!

相關文章
相關標籤/搜索