淘汰Matlab

前面一段时间太忙了,一直没有过多的时间维博客。

Matlab是个好东西,这是毋庸置疑的。在学习、实验、分析等环节上提供了强大的数值分析、数据统计、实验仿真、绘图表述等方方面面的帮助。不过,对于我来说,已经有了更好更方便更强大的工具来代替它了。

Matlab的致命缺陷

让我放弃Matlab的主要原因就是它的几个致命的缺陷,而这些缺陷已经可以通过别的方式所弥补或克服了!

版权

随着消费习惯的慢慢进步,我的版权意识也在渐渐觉醒。多年之前使用盗版软件是理所当然的,但是现在总是会下意识的拒绝盗版,基本上现在我的电脑上已经不存在盗版软件了。有人会说我傻,不过我也不打算争辩什么,因为双方的理念差距过于悬殊,而且这并不是这篇文章的重点。

如果向我一样,公司没有购买Matlab、学校没有购买Matlab、个人无意购买Matlab,如果必须的话只能使用盗版、需要破解,这是对作者的不尊重,也是对自己的不尊重。

我后面说道的方法就会避免对版权的侵犯。

速度

Matlab中不少的计算方式都是使用数值分析中的快速算法来实现的,同时在底层进行了大量的优化,使得很多计算都可以以接近C语言的速度来运行,那么,到底怎么慢了呢?

运行速度上面来说,Matlab是解释性的脚本语言,虽然底层上很多运算的速度很快,但是家不住用户的水平太差,也不可能去对算法进行大量的优化,简单来说就是“短板太短了”。

编程速度上来说,比较C语言、Java语言这类来说,确实是很快了,但是比较现在的先进语言,比如Python,它奇葩的语言规则和代码结构又太慢了!

同样的一组数据穷举运算,使用Matlab的实验室同学跑了一天,而我只跑了2个小时,时间就是金钱啊!

调试困难

如果非要同C语言这样的古董语言来比较的话,Matlab确实智能了很多,但是,该语言本身的框架思想已经是比较落后的了。

丑陋

作为数据的表现方式:绘图,Matlab最早的优势就高效而简洁的绘图解决方案,但是Matlab绘制的图像对于现在的各种工具来说已经过于落伍了,在知乎上有一些比较:R语言绘图相比其他软件主要是强在哪里?

同样的,Python自带的包Matplotlib也可以作出非常好看的图像,远远超过Matlib,就是相对R语言来说比较麻烦而已。

两者相比的绘图图像可以在如何在论文中画出漂亮的插图?这个问题中找到,相信你一定会被震撼到的!

替代方案

目前根据我现在的技术储备,同时配合使用Python和R语言进行科学计算、仿真、绘图是一种很好的组合。

计算与仿真

在计算方面,现在国外流行使用Python语言,配合Numpy、SciPy、Pandas,如果需要处理自然语言(英语、中文语义分析什么的)还可以使用NLTK包等等,功能拓展非常丰富。

使用这类包的好处是,个人只需要专注于处理问题,而不是设计算法,保证了极高的工作效率和快速的计算效率。

科学绘图与统计分析

尽管Python也可以做到统计分析与科学绘图,但是R语言相对来说更专一些,我现在更喜欢使用专业的方式来完成这类计算。

最重要的是,我发现R语言中ggplot包绘图的效果是其他无法比拟的,它的效果同时保留了科学的严谨、现代的审美、印刷的质量和代码的简洁!

具体的效果如下,摘自知乎中如何在论文中画出漂亮的插图?这篇文章:

大数据做图