標籤:

如何看待 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^500

py.pow(int32(2), int32(1000))- py.pow(int32(3), int32(500))

結果:

10715086071862673209484250490600018105614048117055336074437503847343218715379424382546716708613639463252561703173908427905835620276322948852089093376190311824545784466644528451017218852206439624864888039160615558421556161245627519711522093820734226348757986505096170577507851103644238396697410290459375

結果經Mathematica驗證正確

補充:

評論里有人關心效率,我簡單的測試了一下,發現Python的速度快一點點.

計算2^1000000000

MATLAB:

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下的在線音樂播放器,我應該選取什麼播放器去開發插件,或者自己寫主程序?

TAG:Python | MATLAB |