矩陣乘法:
左乘:設a為m*p的矩陣,b為p*n的矩陣,那麼稱m*n的矩陣c為矩陣a與b的乘積,記作c=ab,稱為a左乘以b。
左乘是做行變換;
用對角陣左乘乙個矩陣,就是用對角陣的對角元分別乘這個矩陣的對應各行;
右乘:設a為m*p的矩陣,b為p*n的矩陣,那麼度稱m*n的矩陣c為矩陣a與b的乘積,記作版c=ab,稱為b右乘以a。
右乘是做列變換;
用對角陣右乘乙個矩陣,就是用對角陣的對角元分別乘這個矩陣的對應各列。
謹慎使用python的numpy進行矩陣計算,理由如下:
(1)如果通過numpy包進行矩陣計算,可能把陣列誤認為矩陣!
比如numpy.diag([1,2,3]),返回是對角矩陣的形式,你以為是矩陣,其實是陣列!
當你發現所有矩陣乘法都變成陣列乘法的時候,很恐怖的一件事!
(2)如果你一定要用numpy,慎用星號*表示乘法!
如果a和b都是陣列,a*b是陣列乘法(對應元素相乘),返回陣列;
如果a和b中有乙個是矩陣,a*b預設變成矩陣運算(行列式相乘),返回矩陣;
(3)如果你一定要用numpy,千萬不要用1表示單位矩陣;
1-a,如果a是陣列,這裡的1預設為全1陣列(非單位矩陣的形式);
1-a,如果a是矩陣,這裡的1預設為全1矩陣(非單位矩陣的形式);
真正的單位矩陣,只有對角線元素為1,其他元素為0,用np.identity(n)生成單位矩陣;
(4)np.dot(a, b) 是做矩陣運算,但是返回值卻是陣列!
舉個例子:在python中,矩陣與陣列採用np.dot()計算時,雖然是矩陣計算,但是所得結果均為乙個陣列;
陣列在前時,可按照將陣列看成1行n列的矩陣,與矩陣相乘,可得計算結果。但需注意計算結果依然只是陣列,及其shape為(k,)形式,而不是(1,k);
附上**供理解:
import numpy as np
a = np.diag([1,2,3])
b = np.diag([4,5,6])
c = np.array([[0.1,0.2,0.3],[0.4,0.5,0.6],[0.7,0.8,0.9]])
print("\n區分 h_stack 和 column_stack")
print(np.hstack((a, b)))
print(np.column_stack((a, b)))
print("\n區分 陣列乘法 和 矩陣乘法")
print(type(a*c))
print(a*c)
print(type(a.dot(c)))
print(a.dot(c)) # 雖然是矩陣乘法,但返回值為陣列
print("\n區分 全1陣列 和 單位矩陣")
print(type(1-a))
print(1-a)
print(type(np.identity(3)-a))
print(np.identity(3)-a)
print("\n陣列乘法:(全1陣列-a)*對角陣列 = (單位陣列-a)*對角陣列")
print((1-a)*b)
print((np.diag([1,1,1])-a)*b)
print("\n矩陣乘法:全1矩陣x對角陣列) != 單位陣列x對角陣列)")
print((1-a).dot(b))
print(b.dot(1-a))
print(np.dot(1-a, b))
print(np.dot(b, 1-a))
print("\n對角陣列 x 陣列 = 兩個陣列對角元素相乘")
print(type(a*c))
print(a*c)
print("\n對角陣列 x 矩陣 = 對角陣的對角元分別乘這個矩陣的對應各行")
d = np.mat(c)
print(type(a*d))
print(a*d)
謹慎使用viewWithTag
uilabel cl title self viewwithtag 101 cl title.text infos total time uilabel cl distance self viewwithtag 102 cl distance.text infos distance uilabel ...
對於drawRect使用,謹慎使用
1.drawrect簡介 drawrect方法在uiview的使用上起著十分關鍵的作用。不知道大家注意過沒有,每一次建立uiview子類檔案時候,會有自動帶有已注釋的drawrect方法,也許從這一點就能看出這個方法的重要性。該方法定義在uiview uiviewrendering 分類裡面,望文生...
union的謹慎使用
include using namespace std float float666 myfloat 666 myinteger myinteger 1 return myfloat int main float float666 float666 coutmyinteger也被賦值了,myinte...