Python 会不会替代 MATLAB

2024-05-13 11:47

1. Python 会不会替代 MATLAB

如果说的是matlab整个产品,我觉得短时间内是不可能的。
如果是符号计算,matlab的确不行。即使是matlab比较擅长的有大量矩阵和向量的数值计算,和一些优良的库相比,也不一定效率最高。但是,matlab发展到今天,这些都不是matlab最重要的部分了。
matlab一直在推广的是model based design,来看个海报:t;
没错,mathworks在说,他家的软件结合model based design这种设计方法,辅助了一台火星探测器的设计。看到上面的海报里面说的380,000 simulations,你可能觉得这个设计方法中,matlab的产品的作用仅仅是仿真,但是这不一定,看下一个例子:
gt;
这个是个国内的例子,电动汽车的电源管理,注意上面的话:100% of code generated , 这里说的code是C语言代码,这些C代码的target device是嵌入式设备。这就意味着那不仅仅是仿真了,模型是能够直接生成代码的。
所以,python要取代它。除了数值计算。需要开源社区设计出一个比较成熟的仿真软件。而仿真软件还要能够支持code generation。这本质上是一堆不同的编译器(嵌入式设备众多,还需要厂家的配合才行)。

PS:1. 当初Cleve Moler设计matlab是帮学生减轻负担,避免他们去学Fortran(LINPACK)。但是,作为一个工程师的Jack的加入,肯定会把这个东西往工程上靠。那么数值计算是foundation,但是在这个foundation上如何发挥才是使得matlab不一样了的地方。而这个Foundation的部分,可以在后续的release中慢慢地优化,使用更好的开源实现,或者是直接购买一些商业实现库。但是,如果发挥出来的整个体系成了不可替代的了,那这就不仅仅是一个数学分析工具了,而是一个从开始的需求分析,模型验证,以及到实现,整个设计流程都包含的工程平台了。2.楼主说的不能web,如果要把matlab作为服务器端语言,我确实还没有看到类似的应用。但是,如果只是一些网络应用,比如web crawler,网上其实挺多的。matlab里面有几个简单的网络接口函数,比如urlread可以读取网页,还有xmlread。这个函数是用java的库写的,因为matlab里面是集成了JVM的,其实在你的matlab 代码里面可以直接调用java的libraries。只是,这些属于undocumented范畴,这里有个网站就专门挖掘这些:Undocumented Matlab目前的web server一般都是动态生成html页面了。我确实还没有见到这方面的应用。但是,如果是生称静态的html页面,那么matlab其实一直都可以。Cleve Moler的博客其实使用matlab写的:MATLAB Central上面链接里是Cleve Moler的一篇博客,这片博客里面有图片,有代码,还有文字。Cleve在写这样一篇博客的时候,其实只是写了一个m文件,里面有注释,在cell mode里面注明了各个地方的title。然后在editor里面publish。在发布的过程中,matlab会把运行结果中的图也自动加入最后生成的html文件里(图片放在单独文件夹)。在m文件中还支持Latex,这些会在生称的html被自动转换成文字或者公式的图片。
在那篇博客的文末的右边,有个 “get the matlab code”链接,你可以把它的m文件下载下来自己看下,然后自己发布一下,看看生称的html文件是怎样的。
3.楼主说的脚本,其实matlab就是一种脚本语言。这也是为什么它的调试会比较方便。你不需要一个专门的入口,你可以从m文件的任何一个位置开始运行你的程序。matlab的编辑器有一个cell mode,使用它,你可以把m中的任何一个你想要单独运行的部分放在一个cell里面,只执行这个cell。
另外,说到windows的操作。在matlab里面可以直接执行dos命令。所以在涉及到了windows的比较复杂一点的操作,可以用批处理写好batch,然后在matlab里面调用。当然,你可以用matlab先生称一个batch,然后运行。
4.最后,虽然matlab是一个商业软件。但是在matlab这个商业平台上是有“开源社区”的。matlab的File Exchange是一个很活跃的社区。

Python 会不会替代 MATLAB

2. Python 会不会替代 MATLAB

如果说的是matlab整个产品,我觉得短时间内是不可能的。
如果是符号计算,matlab的确不行。
即使是matlab比较擅长的有大量矩阵和向量的数值计算,和一些优良的库相比,也不一定效率最高。
但是,matlab发展到今天,这些都不是matlab最重要的部分了。
matlab一直在推广的是model based design
mathworks在说,他家的软件结合model based design这种设计方法,辅助了一台火星探测器的设计。看到上面的海报里面说的380,000 simulations,你可能觉得这个设计方法中,matlab的产品的作用仅仅是仿真,但是这不一定,看下一个例子:

这个是个国内的例子,电动汽车的电源管理,注意上面的话:100% of code generated , 这里说的code是C语言代码,这些C代码的target device是嵌入式设备。这就意味着那不仅仅是仿真了,模型是能够直接生成代码的。所以,python要取代它。除了数值计算。需要开源社区设计出一个比较成熟的仿真软件。而仿真软件还要能够支持code generation。这本质上是一堆不同的编译器(嵌入式设备众多,还需要厂家的配合才行)。PS:1. 当初Cleve Moler设计matlab是帮学生减轻负担,避免他们去学Fortran(LINPACK)。但是,作为一个工程师的Jack的加入,肯定会把这个东西往工程上靠。那么数值计算是foundation,但是在这个foundation上如何发挥才是使得matlab不一样了的地方。而这个Foundation的部分,可以在后续的release中慢慢地优化,使用更好的开源实现,或者是直接购买一些商业实现库。但是,如果发挥出来的整个体系成了不可替代的了,那这就不仅仅是一个数学分析工具了,而是一个从开始的需求分析,模型验证,以及到实现,整个设计流程都包含的工程平台了。2.楼主说的不能web,如果要把matlab作为服务器端语言,我确实还没有看到类似的应用。但是,如果只是一些网络应用,比如web crawler,网上其实挺多的。matlab里面有几个简单的网络接口函数,比如urlread可以读取网页,还有xmlread。这个函数是用java的库写的,因为matlab里面是集成了JVM的,其实在你的matlab 代码里面可以直接调用java的libraries。只是,这些属于undocumented范畴,这里有个网站就专门挖掘这些:Undocumented Matlab目前的web server一般都是动态生成html页面了。我确实还没有见到这方面的应用。但是,如果是生称静态的html页面,那么matlab其实一直都可以。Cleve Moler的博客其实使用matlab写的:MATLAB Central上面链接里是Cleve Moler的一篇博客,这片博客里面有图片,有代码,还有文字。Cleve在写这样一篇博客的时候,其实只是写了一个m文件,里面有注释,在cell mode里面注明了各个地方的title。然后在editor里面publish。在发布的过程中,matlab会把运行结果中的图也自动加入最后生成的html文件里(图片放在单独文件夹)。在m文件中还支持Latex,这些会在生称的html被自动转换成文字或者公式的图片。在那篇的文末的右边,有个 “get the matlab code”链接,你可以把它的m文件下载下来自己看下,然后自己发布一下,看看生称的html文件是怎样的。楼主说的脚本,其实matlab就是一种脚本语言。这也是为什么它的调试会比较方便。你不需要一个专门的入口,你可以从m文件的任何一个位置开始运行你的程序。matlab的编辑器有一个cell mode,使用它,你可以把m中的任何一个你想要单独运行的部分放在一个cell里面,只执行这个cell。另外,说到windows的操作。在matlab里面可以直接执行dos命令。所以在涉及到了windows的比较复杂一点的操作,可以用批处理写好batch,然后在matlab里面调用。当然,你可以用matlab先生称一个batch,然后运行。4.最后,虽然matlab是一个商业软件。但是在matlab这个商业平台上是有“开源社区”的。matlab的File Exchange是一个很活跃的社区。

3. python和matlab哪个难

都不难,都很好上手。具体学那个,就得根据你本身的需要了。
matlab和Python的上手程度其实差不多,matlab和Python相较于其他编程软件都很好掌握。

Python语言的优势:
Python相对于Matlab最大的优势:免费。可能国内不是很在乎这个,但国外这个是很关键的。
Python次要的优势:开源。你可以大量更改科学计算的算法细节。可移植性,Matlab必然不如Python,不过这方面需求一般不是很高。
第三方生态,Matlab不如Python,比如说3D的绘图工具包,GUI,更方便的进行,使用GPU,Functional等等;长期来讲,Python的科学计算生态要比Matlab好。Python语言更加优美,如果有一定的OOP需求,构建较大一点的科学计算系统,直接用Python比用Matlab方案要简洁很多;而Python作为一种通用编程语言,可以做Web开发、网络爬虫、脚本、人工智能、机器学习等,用途是非常广泛的。
Matlab的优势
Matlab可以说是一个工具,学术界大量使用它来做仿真,做研究的话更容易找到代码参考。语法相对Python更灵活一些,Matlab写程序基本不用套路。
Matlab可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

python和matlab哪个难

最新文章
热门文章
推荐阅读