MATLAB在逐渐被Python淘汰吗?
作者:pb博;来源:知乎。著作权归作者所有。非商业转载请注明出处。
讲一下自己最近用python做仿真的血泪史。
曾几何时,为了拥抱python,我也将自己日常科研中提出的算法都拿numpy,scipy以及其他第三方packages来仿真和验证。
然而最近有两次,我的两个算法原型在python里验证怎么都得不到和理论上完全一致的结果。第一个根本没法得到reasonable的结果,第二个可以得到部分一致的结果,但是python求解用到的时间特别长。
检查了N遍代码以及我的方法,都无法做到consistent,百思不得其姐到怀疑人生。最后抱着试试看的想法,把python代码对照着在matlab里逐句转换了一遍。
神奇的事情发生了,第一个实验matlab里当场给出和理论上consistent的结果,第二个实验不仅得到consistent的结果,而且速度提高了N倍。。。
代码一样,但结果却是天差地别。究其原因我认为可能是正如@清雨影大佬所说,matlab在求逆、产生随机数、矩阵分解等函数上进行了比numpy、scipy相对应的函数,要多得多和细致得多的优化。
因为这些函数对用户来说都是黑盒,所以要人工检差是否是这些黑盒引起的偏差实在是太麻烦了。所以如果想要快速、省心的初步验证一些自己的想法是否work,强烈推荐直接上MATLAB……
当然上面说的仅限于科学计算相关。
总结起来,大概是尽管matlab在“人无我有”方面正在走下坡路,但是在“人有我好”方面目前还有很大优势。
