Matlab的地盘已经Python蚕食殆尽了吧?

63 个回复
lvsoft
Lv(The Last Guardian) 04月13日

数值计算numpy

符号计算sympy

科学计算scipy

可视化matplotlab

数据统计与分析pandas

大数据计算dask

具体说说这套组合拳的不足在哪里呗

【 在 JianingSun 的大作中提到: 】

: 科学计算领域python还是比不了

wushunchao
fixer 04月13日

我的感觉,在高校和企业的研发人员中,用matlab的人还是多很多。

首先,应该是交互绘图。像点击取值、点击改坐标轴的名称、点击添加箭头等等,matlab支持得非常好,但是matplotlib则不支持。这个会让研究人员的思考不顺畅。

其次,可能只有纯理论的人,才更多地会python。大多数的,装个python系统,查pandas文档,写python的语句,都可能让他们觉得难,或者不想学。

最后,mathworks公司毕竟是专门支持数值计算的各种应用的,力量集中,所以更有保障。

【 在 lvsoft (Lv(The Last Guardian)) 的大作中提到: 】

: 数值计算numpy

: 符号计算sympy

: 科学计算scipy

: ...................

JianingSun
爱吃巧克力的北极熊 04月13日

具体来说就是用的人受限制,很多科研院所从事高精度计算的都是保密单位,电脑不联网,你给他用python试试?一个一个离线包安装吗?装好了怎么更新?

你装好了需要放到别的机器上跑,其他人也跟着你装吗?更别说不通版本之间的复杂性了。

【 在 lvsoft 的大作中提到: 】

: 数值计算numpy

: 符号计算sympy

: 科学计算scipy

: ...................

nickwang
做更好的自己 04月13日

这些领域估计还需要10年以上的时间,看看有没有专业的开源软件冒出来,否则替代matlab还只能是在toy project

【 在 lvsoft 的大作中提到: 】

: 完全不能打?这么说吧,Python距离simulink差的只是一个系统性的整合工作罢了。

: 之所以没人来搞,那是因为用户群太小。能用python解决这类问题的人通常都喜欢符号

: 化的系统去解决问题,压根就看不上这种面向新人的“可视化”界面;需要这类可视化界

: ...................

jumpmansmth
jumpman 04月13日

python主要是慢

matlab+mex简直是速度和易用的完美结合,有一篇论文也是对比了市面上常用的东西,最后结论是matlab+mex是最完美的,提前是不考虑matlab版权的问题。

sssss
冬至 04月13日

mpi不好用

非x86 CPU上不好用,比如几个国产CPU的国家超算平台

【 在 lvsoft (Lv(The Last Guardian)) 的大作中提到: 】

: 数值计算numpy

: 符号计算sympy

: 科学计算scipy

: ...................

zhrli
跑步的猪 04月13日

matlab coder 比自己写 C 算得快

【 在 jumpmansmth 的大作中提到: 】

: python主要是慢

: matlab+mex简直是速度和易用的完美结合,有一篇论文也是对比了市面上常用的东西,最后结论是matlab+mex是最完美的,提前是不考虑matlab版权的问题。

lvsoft
Lv(The Last Guardian) 04月13日

国内高校和院所用matlab的人是挺多的,说的好听一点这叫专注于自己领域的核心问

题,工具能用就好。说的不好听一点这个叫凑合了事。

在图上加个箭头什么的这类甜点功能,matplotlib就是加几行代码的事,随便举个例

子:

https://stackoverflow.com/questions/9136938/matplotlib-interactive-graphing-

manually-drawing-lines-on-a-graph

但重点不在这里,重点是python下研究人员思考问题过程的主流方式是jupyter

notebook。通过代码来分析问题,通过代码来呈现数据。所谓的交互并不是鼠标点点,

而是代码的修正过程。把这个过程记录下来形成notebook,这才是思考的过程的体现。

比如这个:

https://nbviewer.jupyter.org/github/waltherg/notebooks/blob/master/2013-12-

03-Crank_Nicolson.ipynb

顺便,notebook也可以是slides形式:

http://slideviewer.herokuapp.com/github/yoavram/ipython-

notebooks/blob/master/simulation%20frameworks.ipynb#/

感兴趣这里有几十个nodebook,都是各领域的researcher贡献的自己研究过程中产生的

notebook,你可以随便看看:

https://github.com/jupyter/jupyter/wiki/A-gallery-of-interesting-Jupyter-

Notebooks

最后谈谈专业软件的”专业性“。在我看来衡量软件专业性的唯一准则,就是有多少用户

在使用+有多少专业人士在维护。前者产生需求,后者解决需求,其他都是假的。包括

matlab在内,我也用过不少贵的要死的各个领域专业软件。我只能说他们的门槛比较

低,想快速上手是比较方便,但一旦某个问题你撞到了他的天花板,那就基本无解。好

比现在ai是热点,有谁是用matlab研究发ai顶会的?

matlab支持得非常好,但是matplotlib则不支持。这个会让研究人员的思考不顺畅。

pandas文档,写python的语句,都可能让他们觉得难,或者不想学。

【 在 wushunchao (fixer) 的大作中提到: 】

: 我的感觉,在高校和企业的研发人员中,用matlab的人还是多很多。

: 首先,应该是交互绘图。像点击取值、点击改坐标轴的名称、点击添加箭头等等,

: 其次,可能只有纯理论的人,才更多地会python。大多数的,装个python系统,查

: ...................

lvsoft
Lv(The Last Guardian) 04月13日

anaconda了解下。

顺便,人家google都在研究放弃企业级防火墙,消除内网概念,让公司内部所有服务器和

员工的pc直接暴露在internet上了,国内这些个安全还是主要靠断网的地方,我不太想评

价。

网,你给他用python试试?一个一个离线包安装吗?装好了怎么更新?

了。

【 在 JianingSun (爱吃巧克力的北极熊) 的大作中提到: 】

: 具体来说就是用的人受限制,很多科研院所从事高精度计算的都是保密单位,电脑不联

: 你装好了需要放到别的机器上跑,其他人也跟着你装吗?更别说不通版本之间的复杂性

lvsoft
Lv(The Last Guardian) 04月13日

cython了解下

顺便,python和matlab一样,慢主要是使用姿势不对的问题。

最后结论是matlab+mex是最完美的,提前是不考虑matlab版权的问题。

【 在 jumpmansmth (jumpman) 的大作中提到: 】

: python主要是慢

: matlab+mex简直是速度和易用的完美结合,有一篇论文也是对比了市面上常用的东西,

lvsoft
Lv(The Last Guardian) 04月13日

python有mpi4py,但我觉得可以说想用mpi去并行执行python你这思路就错了。mpi是上

古时代的并行计算框架了,dask它不香么?

其次,非x86怎么不好用了?我在小机上就用python做过课题呀,python本身是跨平台

的,很多底层库要么cython要么c写的,不存在平台依赖呀。

当然了,虽然gpu加速我可以用pycuda来搞,但你一定要在国产cpu超算平台上搞个

python wrapper估计还真没有。不过只要你给c library,python就可以用cffi搞定呀,

并且问题来了,matlab就有么?

【 在 sssss (冬至) 的大作中提到: 】

: mpi不好用

: 非x86 CPU上不好用,比如几个国产CPU的国家超算平台

lvsoft
Lv(The Last Guardian) 04月13日
JianingSun
爱吃巧克力的北极熊 04月13日

不用了解,这东西是个人就会,但这玩意儿没网络就是配不起来。Matlab自带完整帮助,python用法想不起来了你到哪儿查去?

谷歌怎么用我不知道,反正国内就这环境。再说谷歌员工顶多是一点儿商业信息,有人关心吗?

要是NASA 洛马 白宫的电脑在网上,你倒是可以拿来说说

【 在 lvsoft 的大作中提到: 】

: anaconda了解下。

: 顺便,人家google都在研究放弃企业级防火墙,消除内网概念,让公司内部所有服务器和

: 员工的pc直接暴露在internet上了,国内这些个安全还是主要靠断网的地方,我不太想评

: ...................

JianingSun
爱吃巧克力的北极熊 04月13日

而且我没觉得会用这个有多值得拿出来说的地方,无非是个工具而已,会用matlab做这些事儿的人换python分分钟的事儿,方便不方便罢了。

python有多简单大家又不是不知道,会写脚本的一个星期上手没什么困难吧?

你要是能拿C++干这些事儿那确实可以挤兑一下Matlab。但python这种智商正常的人都会用的东西,没什么值得说的。

【 在 lvsoft 的大作中提到: 】

: 数值计算numpy

: 符号计算sympy

: 科学计算scipy

: ...................

lihansmart
lihansmart 04月13日

汽油车和电车的关系了。纵使电车有很多优点,短期不会取代汽油车,未来就不知道了。

【 在 lvsoft 的大作中提到: 】

: 完全不能打?这么说吧,Python距离simulink差的只是一个系统性的整合工作罢了。

: 之所以没人来搞,那是因为用户群太小。能用python解决这类问题的人通常都喜欢符号

: 化的系统去解决问题,压根就看不上这种面向新人的“可视化”界面;需要这类可视化界

: ...................

wushunchao
fixer 04月13日

好听的难听的都说了,还是捡好听的吧。

你说的交互跟我说的交互含义不一样。

你说的这个交互,就像你说的,是一个思考流程。

python有notebook,matlab也有个live script。这类东东我最早见自mathematica。

我说的交互,则是这样:

一般搞研发用matlab,会写个函数啥的,会把一些测来的数据输进去,然后画出些图来。

假设是几条曲线吧。

然后研发人员就会盯着曲线开始思考了:

这个峰在这里说?来,看看峰值多少;再来,比一下,看看峰宽多少。

这几条线得区分一下啊,来,右键换种marker,再来,右键换种线型。

嗯,怕是要起个标题啊,叫个啥好呢?

有点心得或注意事项啊,是不是弄个框框写点备注啊?

基本上就是这种画风。

所以你推荐的代码式方法,对他们不好使。

我自己也想找个python写的成品替代品,真是没找到。

最后是AI吧,这个用matlab来做的不多。

会AI的,很多都熟悉编程,加上matlab对AI的支持来得晚一步,自然用python的多。

尽管AI很热,但是跟整个科研领域相比,只是个小个头,对大局面没多大影响。

【 在 lvsoft (Lv(The Last Guardian)) 的大作中提到: 】

: 国内高校和院所用matlab的人是挺多的,说的好听一点这叫专注于自己领域的核心问

: 题,工具能用就好。说的不好听一点这个叫凑合了事。

: 在图上加个箭头什么的这类甜点功能,matplotlib就是加几行代码的事,随便举个例

: ...................

alwaysfaint
熊二出没 04月13日

你说的这个都比不上惯性问题,比如你做图像处理,做个简单显示滤波什么的py和mat还有c++都一样

要是上个CNN或者GAN什么的,用mat是给自己找罪受

你要是说做个图像处理再分个类随便调一下SVM什么的,mat还是比py顺手

要是想法都有了拿CV来验证封装一下,C++麻烦也只愿意选它

【 在 lvsoft 的大作中提到: 】

: python有mpi4py,但我觉得可以说想用mpi去并行执行python你这思路就错了。mpi是上

: 古时代的并行计算框架了,dask它不香么?

: 其次,非x86怎么不好用了?我在小机上就用python做过课题呀,python本身是跨平台

: ...................

lambdago
foool 04月13日

你的提问和我回答本文问题没有关系。

【 在 Tyo 的大作中提到: 】

: 你觉得这部分用户量比Python用户量,什么比例?

lambdago
foool 04月13日

Hi

我说的是

“Simulink仿真+面向仿真目标的代码生成(CPU,FPGA)”

你提供了很多Python 可视化界面解决方案,但不是我说的Simulink 仿真

Simulink仿真的确提供了一个可视化、拖拽的编辑方式,但这不是Simulink 仿真核心,

即使我们不用Simulink可视化界面,也可以用脚本描述出Simulink 模块的连接方式,

然后进行仿真,这和可视化界面真的没太大关系。

Simulink仿真是基于模型的仿真,他这种编辑灵活性高(yes,感谢拖拽式的可视化编辑方法)、

模型库准确齐全、系统仿真程度高以及开发式的接口接入我是在python 中没有看到类似的解决方法。

“面向仿真目标的代码生成”是MATLAB coder / simulink coder / hdl coder 等

和你说的pynq 应该无关,可能和myhdl 有点类似,

但面向仿真目标代码生成复杂的多,是从(可视化的)模型到目标源码的代码生成,

支持的目标机可以是DSP,可以是STM32,可以是ARM,X86,也可以是FPGA,

甚至能让这些异构的目标联合起来仿真,这是一个繁琐复杂的活儿,

很多都是python 没有的内容

【 在 lvsoft 的大作中提到: 】

: 完全不能打?这么说吧,Python距离simulink差的只是一个系统性的整合工作罢了。

: 之所以没人来搞,那是因为用户群太小。能用python解决这类问题的人通常都喜欢符号

: 化的系统去解决问题,压根就看不上这种面向新人的“可视化”界面;需要这类可视化界

: ...................

imlaohe
大龄小青年,奔四无产者 04月14日

那位基本不了解MATLAB在工业上的应用,嘿嘿。

感觉用个python还用出优越感来了,嘿嘿。

【 在 lambdago 的大作中提到: 】

: Hi

: 我说的是

: “Simulink仿真+面向仿真目标的代码生成(CPU,FPGA)”