如何看待 MATLAB R2015a 開始支持調用 Python?
MATLAB黨應該很開心吧,再也不用頭疼字元串處理這類的雜活,可以直接調Python解決了。
Python一直都有NumPy,應該沒什麼太大影響吧,不會因為這個就轉投MATLAB了。可能從此用不熟悉語言為借口不好好乾活的研究生們要頭疼了,但也僅此而已吧。
從此不再怕matlab的大整數計算了, 以下是我在R2015a下的測試:計算2^1000
py.print(py.pow(int32(2), int32(1000)))
結果:
10715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376
結果經Mathematica驗證正確
計算2^1000 - 3^500py.pow(int32(2), int32(1000))- py.pow(int32(3), int32(500))
結果:
10715086071862673209484250490600018105614048117055336074437503847343218715379424382546716708613639463252561703173908427905835620276322948852089093376190311824545784466644528451017218852206439624864888039160615558421556161245627519711522093820734226348757986505096170577507851103644238396697410290459375
結果經Mathematica驗證正確
補充:
評論里有人關心效率,我簡單的測試了一下,發現Python的速度快一點點.計算2^1000000000MATLAB:tic;a = py.pow(int32(2), int32(1000000000));toc;
Elapsed time is 7.373437 seconds.
Python3:import time
def func(a,b):
return a ** b
t1 = time.time()
c = func(2,1000000000)
print(time.time() - t1)
時間為: 7.17000007629 seconds
效率的差別我估計來自於:
1 matlab需要將將數據轉化為整數型
2 matlab與python之間傳輸成本當然這點性能的差異, 大部分情況下, 是可以忽略的.MATLAB R2014B就開始支持了,調用matplotlib繪製抗鋸齒的曲線超贊!
似乎不是matlab 2015a才開始支持Python的吧
其他的一些庫可以安裝么,譬如sklearn?
推薦閱讀:
※Python如何調用Mathematica進行計算並返回結果?
※想開發一個linux下的在線音樂播放器,我應該選取什麼播放器去開發插件,或者自己寫主程序?