近日,有哈工大學(xué)生表示收到了正版軟件取消激活的通知,而在與 MATLAB 開(kāi)發(fā)公司 MathWorks 交涉之后,被告知由于美國(guó)政府實(shí)體名單的原因,相關(guān)授權(quán)已被中止。目前,哈爾濱工業(yè)大學(xué)、哈爾濱工程大學(xué)的老師和學(xué)生們都無(wú)法使用 MATLAB。
MATLAB大學(xué)讀理工科專業(yè)的同學(xué)基本上都接觸過(guò)這款軟件。有分析人士指出,如果整個(gè)學(xué)校被禁用了正版 MATLAB,這意味著學(xué)校的人員再發(fā)表論文或者從事商業(yè)項(xiàng)目,其成果原則上就不應(yīng)包含任何基于 MATLAB 的內(nèi)容,這對(duì)國(guó)內(nèi)相關(guān)企業(yè)和研究學(xué)者帶來(lái)的影響不可忽視。
這件事在國(guó)內(nèi)社交媒體迅速發(fā)酵并登上熱搜,引發(fā)學(xué)術(shù)界和技術(shù)界的廣泛討論。
現(xiàn)在只是禁止了實(shí)體名單的上的幾所高校,但是誰(shuí)又能保證后續(xù)不會(huì)加碼制裁打擊中國(guó)高校,抑制中國(guó)科技發(fā)展呢?因此通過(guò)此次禁用事件,我們有理由說(shuō)現(xiàn)在已經(jīng)到了后MATLAB時(shí)代!急需找到MATLAB合適的替代品。
為此我們收集整理到的一些開(kāi)源軟件,可以起到一定的替代效果。包括:SCILAB、Octave、Spyder、Python、GMAT、GNU Radio、ROS。特別是SCILAB,他與MATLAB最為接近,近乎可以實(shí)現(xiàn)完美替代!
希望本文對(duì)大家有所幫助。另外,也歡迎大家在留言區(qū)推薦你知道的替代工具。
1. “近乎完美”替代之SCILAB
SCILAB 是一款與 MATLAB 類似的開(kāi)源軟件,可以實(shí)現(xiàn) MATLAB 上所有基本的功能,如科學(xué)計(jì)算、數(shù)學(xué)建模、信號(hào)處理、決策優(yōu)化、線性、非線性控制等各個(gè)方面。
由于 SCILAB 的語(yǔ)法與 MATLAB 非常接近,熟悉 MATLAB 編程的人很快就會(huì)掌握 SCILAB 的使用。有意思的是,SCILAB 提供的語(yǔ)言轉(zhuǎn)換函數(shù)可以自動(dòng)將用 MATLAB 語(yǔ)言編寫(xiě)的程序翻譯為 SCILAB 語(yǔ)言。目前,SCILAB 可在 Linux、WINDOWS 和 Mac OS 全 PC 平臺(tái)運(yùn)行。
作為開(kāi)放源碼的軟件,SCILAB的源代碼、用戶手冊(cè)及二進(jìn)制的可執(zhí)行文件都是免費(fèi)的,公布于INRIA的網(wǎng)站上(中法實(shí)驗(yàn)室已建立其鏡像網(wǎng)站),可以直接下載,在EETOP論壇SCILAB專區(qū)也可以下載http://bbs.eetop.cn/forum-114-1.html。
更重要的是SCILAB 是由法國(guó)國(guó)家信息、自動(dòng)化研究院的科學(xué)家們開(kāi)發(fā)的“開(kāi)放源碼”軟件,和美國(guó)沒(méi)有關(guān)系!
此外最關(guān)鍵的是SCILAB也一個(gè)有類似 MATLAB simulink的工具Xcos!simulink能做的Xcos也可以完成,并且界面和使用也很類似!很多網(wǎng)友擔(dān)心的simulink無(wú)法替代問(wèn)題迎刃而解!
因此SCILAB 近乎可以完美替代MATLAB?。g迎用過(guò)的朋友補(bǔ)充說(shuō)明)
Xcos截圖:
2. 與MATLAB語(yǔ)法兼容Octave
如果已經(jīng)對(duì)MATLAB語(yǔ)言非常熟悉,暫時(shí)不想學(xué)習(xí)一門(mén)新的語(yǔ)言,那么可以嘗試一下Octave。Octave是GNU項(xiàng)目成員之一,提供了與MATLAB語(yǔ)法兼容的開(kāi)放源代碼科學(xué)計(jì)算及數(shù)值分析的工具。
Octave 是一個(gè)類似 MATLAB 和 Scilab 的數(shù)學(xué)軟件包,可以進(jìn)行各種運(yùn)算,編程。它還有豐富的 C++ 接口可以讓用戶編程時(shí)調(diào)用。其配套的繪圖工具采用 gnuplot 。Octave 的使用也是基于字符終端模式的,當(dāng)需要繪圖時(shí),將會(huì)調(diào)用 gnuplot 進(jìn)行數(shù)據(jù)繪圖,并顯示出來(lái)。
Octave 是用 C++ 編寫(xiě)的,它內(nèi)容豐富的庫(kù)也可以供用戶在編寫(xiě)軟件時(shí)調(diào)用。Octave 同時(shí)還支持 Fortran 等的調(diào)用,GSL 綁定等??梢杂捎脩舳ㄖ谱约旱暮瘮?shù)、子程序等。
3. 航天計(jì)算神器 GMAT
對(duì)于航天器軌道計(jì)算、任務(wù)分析等,可以嘗試General Mission Analysis Tool (GMAT)。GMAT提供了圖像化界面或腳本兩種接口,相比于STK,GMAT的深空探測(cè)相關(guān)功能更加強(qiáng)大,可配置的資源也更多。
4. 軟件無(wú)線電、信號(hào)處理等應(yīng)用 GNU Radio
GNU Radio是一個(gè)對(duì)學(xué)習(xí),構(gòu)建和部署軟件定義無(wú)線電系統(tǒng)的免費(fèi)軟件工具包,可通過(guò)Python或類似于Simulink/Labview的圖形化界面調(diào)用。紫丁香、龍江等衛(wèi)星的業(yè)余無(wú)線電接收解調(diào)軟件就是在GNU Radio基礎(chǔ)上開(kāi)發(fā)并開(kāi)源發(fā)布的。
5 機(jī)器人相關(guān) Robot Operating System (ROS)
ROS是一種針對(duì)于滿足不同機(jī)器人軟件協(xié)同工作的靈活軟件框架。目的在于提高軟件模塊化能力和復(fù)用能力,并實(shí)現(xiàn)不同任務(wù)間的數(shù)據(jù)/信號(hào)量的有效共享,方便多種機(jī)器人平臺(tái)之間創(chuàng)建復(fù)雜和魯棒的機(jī)器人行為,同時(shí)它也是一種工具庫(kù)的約定與集合。
6. Spyder
Spyder不是一門(mén)編程語(yǔ)言,Spyder是Python(x,y)的作者為它開(kāi)發(fā)的一個(gè)簡(jiǎn)單的集成開(kāi)發(fā)環(huán)境。和其他的Python開(kāi)發(fā)環(huán)境相比,它最大的優(yōu)點(diǎn)就是模仿MATLAB的“工作空間”的功能,可以很方便地觀察和修改數(shù)組的值。
Spyder的界面由許多窗格構(gòu)成,用戶可以根據(jù)自己的喜好調(diào)整它們的位置和大小。當(dāng)多個(gè)窗格出現(xiàn)在一個(gè)區(qū)域時(shí),將使用標(biāo)簽頁(yè)的形式顯示。例如在圖1中,可以看到“Editor”、“Object inspector”、“Variable explorer”、“File explorer”、“Console”、“History log”以及兩個(gè)顯示圖像的窗格。在View菜單中可以設(shè)置是否顯示這些窗格。
Spyder 的界面與 MATLAB 非常類似,其作者早年也承認(rèn)模仿了 MATLAB 的設(shè)計(jì)。如果對(duì)于 MATLAB 的仿真建模需求不高的話,Spyder 足以取而代之。
7. Python
Python是一門(mén)完全免費(fèi)的通用編程語(yǔ)言,以開(kāi)源的方式提供了大量各類用途的庫(kù)與包,如Numpy(數(shù)值計(jì)算)、SciPy(數(shù)學(xué)、科學(xué)和工程計(jì)算)、Matplotlib(類似MATLAB中plot的繪圖工具)等等。
Python是一門(mén)更易學(xué)更嚴(yán)謹(jǐn)?shù)拿嫦驅(qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。作為通用程序設(shè)計(jì)語(yǔ)言的Python,有更為嚴(yán)格清晰的語(yǔ)法,可以輕易完成界面、文件、封裝等高階需求,可移植性更好,也非常適合AI、網(wǎng)絡(luò)等相關(guān)應(yīng)用。
Python的擁有龐大的數(shù)學(xué)庫(kù),如果不是必須用到MATLAB simulink的化,用Python來(lái)取代MATLAB 應(yīng)該是最佳方式了。我們經(jīng)??梢钥吹竭@樣一個(gè)公式:python+NumPy+Scipy+matplotlib = Matlab