查看单个帖子
旧 2019-12-10, 20:30   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 MATLAB比Python快吗?

我想使用比奥瓦法则来计算某些导体的磁场,并且我想使用1000x1000x1000矩阵。在使用MATLAB之前,但现在我想使用Python。 Python比MATLAB慢吗?如何使Python更快?

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

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



回答:

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

http://wiki.scipy.org/PerformancePython

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

它还比较了MATLAB,似乎显示出与使用Python和NumPy时相似的速度。

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

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

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

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

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

编辑:

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

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

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

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



更多&回答...
poster 当前离线   回复时引用此帖