登录论坛

查看完整版本 : MATLAB比Python快吗?


poster
2019-12-10, 20:30
我想使用比奥瓦法则 (http://en.wikipedia.org/wiki/Biot%E2%80%93Savart_law)来计算某些导体的磁场,并且我想使用1000x1000x1000矩阵。在使用MATLAB之前,但现在我想使用Python。 Python比MATLAB慢吗?如何使Python更快?

编辑:也许最好的方法是使用C / C ++计算大型数组,然后将其传输到Python。然后我想用VPython (http://en.wikipedia.org/wiki/VPython)可视化。

EDIT2:在我的情况下哪个更好:C还是C ++?



回答:

您可能会在此链接的底部找到一些有用的结果

http://wiki.scipy.org/PerformancePython

从介绍开始

织法与NumPy,Pyrex,Psyco,Fortran(77和90)和C ++的比较,用于求解拉普拉斯方程。

它还比较了MATLAB,似乎显示出与使用Python和NumPy (http://en.wikipedia.org/wiki/NumPy)时相似的速度。

当然,这仅是一个特定的示例,您的应用程序可能允许更好或更差的性能。在两者上进行相同的测试并进行比较没有任何危害。

您还可以使用优化的库(例如ATLAS) (http://en.wikipedia.org/wiki/Automatically_Tuned_Linear_Algebra_Software)来编译NumPy,该库提供了一些BLAS (http://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms) / LAPACK (http://en.wikipedia.org/wiki/LAPACK)例程。这些速度应与MATLAB相当。

我不确定NumPy的下载文件是否已针对该文件进行构建,但是我认为,如果您编译NumPy,ATLAS会将其库调整到您的系统,

http://www.scipy.org/Installing_SciPy/Windows

该链接具有Windows平台下所需内容的更多详细信息。

编辑:

如果您想找出C或C ++更好的性能,可能值得提出一个新问题。尽管从上面的链接可以看到C ++的性能最佳。其他解决方案也非常接近,例如Pyrex,Python / Fortran(使用f2py)和内联C ++。

我做过的C ++下唯一的矩阵代数是使用MTL (http://www.osl.iu.edu/research/mtl/)并实现扩展卡尔曼滤波器。不过,我想,实际上,这取决于您使用LAPACK / BLAS的库以及它的优化程度。

该链接列出了许多语言的面向对象的数值包。

http://www.oonumerics.org/oon/



更多&回答... (https://stackoverflow.com/questions/2133031)