1.reshape
matlab用的是 fortran order.(按列走,以最後一維爲第一個循環,三維的話實際是 2,3,1) fortran order,fuc u
python用的是c order(按行走, 以第一維爲第一個循環 1,2,3)
解決辦法
參數 order='F' (ps,相同的問題也會出在flatten裏)
2.std
matlab默認算樣本偏差(/n-1)
python默認算總體偏差(/(n))
解決辦法
python需要增加參數 ddof=1
3.eig
matlab的eigen value是矩陣(對角線爲eigen value)
python的eigen value是向量, 而且np.linalg.eig的結果和matlab eig()會反過來,特徵向量也完全不一樣
解決辦法
使用np.linalg.eigh代替np.linalg.eig,皆大歡喜.
4.左右除
matlab裏右除相當於左側矩陣的逆乘以右邊的矩陣.
5.數組和矩陣
python裏矩陣和數組的計算是完全不同的
array * array 是相同位置的乘積
matrix * matrix 是矩陣乘法
除法亦然
6.matlab從1開始,python從0開始
7.未完待續......