当前位置: 首页 > 科技观察

哈工大、哈工程MATLAB被禁或严重影响高校科研,Python和Octave可替代

时间:2023-03-14 14:56:55 科技观察

哈工大、哈工MATLAB被禁用或严重影响高校科研。Python和Octave可以作为替代品,显示关联授权已被暂停。哈萨克斯坦工程专业的学生也被禁止。MathWorks旗下的MATLAB是世界上最强大的统计编程语言之一。很多高校都购买了正版,而这波飞蛾扑火,正是因为实体清单。Mathworks随后回应称,刚刚接到通知,不能再根据实体清单提供服务。或严重影响高校科研工作。说到具体影响,很多同学都说不能用正版,用盗版。但其实对学术界的影响还是很大的。毕竟即使你用盗版MATLAB完成计算,也不能用计算结果发表论文。在工程制造方面,包括汽车、电气、电子信息等,MATLAB是最基本的计算和仿真工具。目前国内还没有一款软件能够全面覆盖MATLABworkbench的生态。目前禁令的对象只是两所大学的学生。如果将对象扩大到其他高校乃至国内的工程师,很多科研人员将难以开展科研工作,工程师也将面临失业。从更深层次上讲,禁用MATLAB的行为表明了美国保护技术知识产权的决心。其实应该解决的是软件依赖问题。也正是因为这种根本性的软件依赖,才会出现很多卡脖子的情况。正如techsugar分析师王树义在一篇文章中写道,MATLAB被禁并不意味着开源的Python和Julia可以随便用,甚至祖传的C语言也不一定安全。就像Arm新技术被华为禁止使用一样,并不代表华为可以随意使用所谓的开源RISC-V。开源技术的领导者仍然是美国。“Matlab被禁用后——如果牛顿定律是美国人发明并申请了专利,估计会一起被禁用——之后,我们要认真考虑是否要从底层构建一个非美国的开发工具链,从语言上的编译器和仿真器,不要依赖开源软件,也不要想象专利过期了就可以随便用,就像RISC-V的例子,只要是美国技术,就有总会有办法禁止你使用的,毕竟美国人都疯了,哥伦布也挡不住。兵来阻,水来淹。那么接下来,我们就来看看如何搭建一个工作环境来替代MATLAB的功能?以Python为例,先从IDE说起。由于机器学习的火爆,近两年Python受到了很多开发者的青睐。语言本身的逐步完善也给了开发者良好的编程体验。以Python为例,IDE的需求分为普通编程和动态编程两种场景。普通的编程,就不得不提到Spyder——一个简单的模仿“MATLAB”的集成开发环境。Spyder的设计接近MATLAB,方便开发者观察和修改数组的值。该界面由许多窗格组成:如果您是MATLAB开发人员,您会对Spyder的界面感到非常熟悉。总之,在通用编程领域,Spyder可以提供大部分功能,而且使用起来也更简单。在动态规划领域,JupyterNotebook非常流行。在开发者看来,Jupter确实提供了非常好的开发体验。一方面,它的文档整合了所有的工作信息,导入文件重新运行也很方便。另一方面,Jupyter引入了Cell,每次实验只能在一个小的Cell中运行代码,这对开发者来说无疑是福音。可以直接看到一小段代码的运行结果,不用被繁琐的工作拖累,大大提高了开发效率。矩阵运算?符号计算?Python的扩展库帮了大忙!其实就软件开发而言,MATLAB最大的优势一定是矩阵运算和仿真。MATLAB的全称是MatrixLab,翻译成中文是矩阵实验室,所以它的基本结构是一个数组。但是Python在解决array数组操作上也花了不少功夫。NumPy堪称MATLAB数组运算的替代品,它的各种运算都高度“模仿”了MATLAB的运算。NumPy支持高阶大维数组和矩阵运算,也提供了大量数组运算的数学函数库。除了NumPy,Python还有一个名为SciPy的库。这个库提供了一些高阶计算的功能,它的定位是一个开源的Python算法库和数学工具包。SciPy包括优化、线性代数、积分、插值、特殊函数、快速傅里叶变换、信号和图像处理、常微分方程求解以及其他科学和工程中常用的计算模块。在作图方面,matplotlib帮了大忙。matplotlib是Python编程语言及其数值数学扩展包NumPy的可视化界面。它利用常见的GUI工具包,例如Tkinter、wxPython、Qt或GTK+。matplotlib在绘图方面还是很受Python开发者欢迎的,在绘图效果方面甚至优于MATLAB。这里是绘图对比,可以看到matplotlib的绘图更清晰。当然Python中有很多库也为数值分析提供帮助,比如Pandas、Blaze等。Simulink还是MATLAB最大的优势?Simulink是MATLAB生态系统中一个非常重要的“功能”。它是一个用于动态和嵌入式系统的多域仿真和基于模型的设计工具,极大地帮助了各个领域的工程师。Python中没有官方文档和相应的库来替代Simulink的功能,其他语言也很难找到类似的仿真环境。不过,Github上有这样一个开源工具,叫做Simupy,看到这个名字的开发者大概意识到这确实是一个意在替代Simulink的Python模仿。正如Github介绍中提到的,Simupy是一个用于模拟互连动态系统模型的框架,并提供了一个基于Python的开源工具,可用于基于模型和基于系统的设计和仿真工作流程。Python要想在主流语言中站稳脚跟,Simupy官方发布应该只是时间问题。总的来说,在讨论MATLAB禁用的问题时,Simulink确实很难找到替代品。吴恩达推荐的Octave:MATLAB的强大竞争对手吴恩达也在他的机器学习课程中推荐了可以替代MATLAB的Octave。也有专家表示,“Octave是MATLAB的有力竞争者,捏着鼻子应该能替代大部分场景。”Octave的界面和MATLAB非常相似,所以对于换软件的开发者来说,非常容易上手,几乎保留了原有的workbench生态。在成本方面,Octave有很大的优势。Octave是完全免费开源的,MATLAB是商业软件,价格很贵。昂贵意味着完美的服务,大量的资源。但这也意味着:需要一个巨大的空间。在这方面,Octave的安装程序占用空间比MATLAB少可谓“沧海一粟”。很多工科生不得不卸载MATLAB的主要原因是为了内存空间。因此,对于需要进行深入科学研究的学者来说,完整丰富的MATLAB库提供了极大的帮助。对于普通的科研小白来说,或许Octave也是一个不错的选择。Octave在语法和绘图功能方面与MATLAB非常相似。语法几乎完全迁移,并增加了许多人性化设计。绘图功能不弱于MATLAB,输出格式更多,公式更强大。一些开发人员反映Octave的绘图速度比MATLAB慢。展望未来:MATLAB并非不可替代,国产软件积累了很多知识,有知乎网友激动地说,国产软件已经在路上了。半年内实现70%的MATLAB科学计算和图形展示;1年内全部实现100%;Simulink将在3年内完全实现。毕竟MATLAB的源代码是用三种不同的语言编写的,即C、C++和Java。确实是MATLAB被禁了,我们自己写!总的来说,MATLAB生态庞大,确实功能齐全。从1984年诞生到现在,已有36年历史,比Python早7年。根据TIOBE编程社区2020年6月最新发布的编程语言榜单:Python排名第三,MATLAB排名第15。如果禁令继续下去,改用Python将是一个不错的选择。除了Simulink,Python其实可以解决大部分的MATLAB应用问题。Simulink还有其他替代方案,例如用于控制系统仿真的MSCEasy5等。在科学计算方面,也可以用Octave、Julia、R等代替。此外,更重要的是加快替代软件的开发,同时规范商业软件市场,让国产软件有发展和使用的空间。期待国产软件在路上。