我是一直用matlab的,因为我们做研究的那个年代还没有python,所以就一直没有变。最近一年接触了一点python,说说我对它们的看法。
matlab最强大之处有几点:一是对矩阵运算有非常
我是一直用matlab的,因为我们做研究的那个年代还没有python,所以就一直没有变。最近一年接触了一点python,说说我对它们的看法。
matlab最强大之处有几点:一是对矩阵运算有非常丰富的支持函数,而且速度极快;二是可以用simulink进行图形化的编程和仿真;三是可以编译成其他语言,如C、C++甚至HDL语言。这几个特点是其它软件所不具备的。这几个特性决定了它对做研究的人特别有用,可以用所见即所得的形式看到自己的算法在一个仿真环境中的运行情况、所能达到的性能指标、所输出的波形等。但是它不适合用于大型软件的编程。比如你如果想开发一个比较复杂的大数据分析软件,用matlab就不太合适。但你可以先用matlab验证分析你的大数据分析算法的性能,比如聚类的速度和结果等,验证通过后再把算法编译成其他语言或者直接编译成动态库,以供其他软件调用。同时,正版matlab的价格是比较贵的,高校里做研究使用的人多,而社会上使用的人少,因为高校版的matlab是便宜一些的。
python是最近几年才兴起的软件。给我的感觉,首先它是无法进行仿真的。它的优点是编程简单,可使用面向对象的编程方法,在网络编程、大数据分析等比较热门的方面能够提供比较丰富的函数。最重要的是,它免费。我感觉它就是30年前的BASIC,20年前的delphi,这些软件当年都是极为盛行的。但它们都最终没能活得过C和C++,原因是C和C++的执行效率是其它软件没法比拟的。你可以用python编写较大型的软件,但它的执行效率是否能超过C++?我不敢肯定。当然目前找工作时,会python还是有一定优势的。但是鉴于目前很多小学初中开始开设python教学了,未来python程序员的工资是否还能这么高,就不好说了。
总之,matlab和python是各有优势,如果是做研究、写算法,建议用matlab,如果是编写网络应用程序,建议用python。不过我还是强烈建议学习一下C++或者C#。另外我也强烈建议把matlab和python结合起来用,即用matlab写算法并仿真验证,然后编译成动态库,用python编写主程序,再调用matlab的动态库算法,可以事半功倍。