1. MATLAB 能做什麼
1、高效的數值計算功能。目前其他編程語言以及其他類似的數學軟體無可替代;
2、完備的計算結果和編程可視化功能。這一點其他軟體,無可替代;
3、接近數學表達式的自然化m語言。非常易於學習和掌握;Matlab軟體就是一個編程開發環境,自帶的m語言簡單易用,有編程開發經驗的人應該是非常容易掌握的,支持面向對象編程;
4、功能豐富的應用工具箱與Help系統。目前Matlab的工具箱總數很多,覆蓋了數學,統計,模擬,電子,生物信息學,金融,測試等等各個方面。
具體的功能示例:
可以做小游戲,可以進行精確的數學計算(高數,概率,線代方程,尤其擅長矩陣),三維建模畫出立體圖形,與C++,Python等混合編程,用simulink 3d animation做3D機械運動模型,較高級別的電路模擬,可以與精密儀器結合計算數據並繪制圖像,可以做音樂,哈哈甚至可以用來修圖等等多種功能。
2. 為什麼很多程序員會鄙視MATLAB
用MATLAB的人,絕大多數都是做科學計算、工程理論計算、數值分析、金融分析用的,用戶群主要是科學家、工程總師、數學建模、金融投資決策班子等等,其中不乏院士博士,普通程序員就仰望吧,哪裡能鄙視?
因為Matlab掩蓋了大量的程序實現細節 。Matlab是由美國mathworks公司開發的一款大型商業軟體(不便宜哦),它的開發語言是M語言(一門解釋性語言,必須依賴MATLAB解釋器)。
在程序員的圈子裡面,的確存在著鄙視鏈,其中Matlab也的確遭到一大批程序員的鄙視,原因是普通程序員(比如使用C、C++編程語言的)要實現一個功能,就必須理解它的每一個細節,再來組織編碼。而MATLAB卻不同,它本身懈怠了大量的庫,很多功能你根本不需要了解他是如何實現的,在沒搞清楚原理的情況下一行代碼就可以搞定,對於那些辛辛苦苦寫很多代碼的程序員來說,是不是很氣人。其實Matlab是一種很有用的科研工具,下面我就來介紹一下MATLAB的一些更要應用。
關於MATLAB,就先介紹這么多,歡迎大吉關注太科羅技,並在下方積極留言討論。
恕本民科直言,
程序員與做科研,完全就是兩碼事!
程序員是靠編程序混口飯吃,需要優化,精雕細琢!
而做科研關心的是用數學模型來盡快驗證某個猜想是否正確,根本就不想,也不需要在程序的優化上花時間,有現成的拿來就用更好,而MATLAB中的各種應用信手拈來,方便無比,節約大把時間,何樂不為?
這就是本民科用MATLAB做科學研究的原因!
程序員鄙視MATLAB?
反過來了吧?
程序員不會做科研,所以不在一個層次!
因為程序員很少會用Matlab的,根本不知道這裡麵包含了多少技術含量
我跟你講,程序員就這表情,真是人在敲代碼,鍋從天上來。莫名其妙的背上鄙視MATLAB的罪名,也是一臉懵逼呀,而且這「很多」程序員是怎麼統計出來的?
的確,在程序員中的確存在各種語言互相瞧不起的現象。就像某個經典的笑話:某程序猿追求女神,女神說你能讓這論壇里所有人吵起來我就跟你走。某猿說Python是世界上最好的語言,果然整個論壇都炸了。女神說我們走吧,某猿不走,非得說服其他人。
對於普通程序員來說,每天需要實現多少功能,完成多少個頁面,涉及演算法的部分很少。而 MATLAB是個數學軟體,都是數學公式,自然用不上。這應該就是為什麼有些程序員「鄙視」MATLAB的原因了。
MATLAB在演算法開發、數據可視化、數據分析以及數值計算方面是其他語言所無法匹敵的。准確來說,MATLAB是一個研究工具,與C,C++,java等語言不同,其他語言更像一個構造工具。打個比方,MATLAB就好比示波器,而其他語言則是計算機,本身不具備太多比較的意義。
雖然MATLAB在數學處理方面很優秀,但它也局限在這了。程序員是一個很廣泛的工作,包括寫爬蟲,做軟體,開發 游戲 ,部署網路等等。MATLAB就算勉強能實現,編程體驗也比其他語言差。 MATLAB的「偏科」也導致了一部分人對它喜愛不起來,但也構不成鄙視的罪名。
1、使用matlab的根本就不是程序猿
2、程序猿也不鄙視matlab
3、matlab的焦點是實驗實現,而不是生產環境
4、程序猿鄙視的頂多是使用matlab的人的編程水平,因為matlab的語言復雜度和需要的特性比一般編程語言簡單太多了。但是沒哪個程序猿會鄙視使用matlab的人在其領域的專業水準。舉個例子,就好像我會鄙視劉國梁的肚子,但是我不會認為因為我有六塊腹肌我就可以球桌上干贏拿信用卡的胖子。
5、如果真有人鄙視matlab,那就好像是會打字的人鄙視牛頓手上的紙筆說它落後,僅此而已
這樣類比吧,放高中,matlab就是那種最高級別,按鈕最多,一個巨大無比的屏幕,但是只能顯示馬賽克的卡西歐科學計算器。任何一個使用ipad的人都會鄙視這玩意
但是,這貨方便啊!真方便啊,你把考題輸進去(當然很麻煩),不光給你結果,還給你過程,甚至所有參數每一秒的值都給你記錄起來,隨時回頭查看,參數是在那一秒跑飛的都能找出來
沒有程序員鄙視matlab,問題本身就不成立。
先問是不是再問為什麼。
我是程序員,用的是JS主力,含Node.js。
大學參加過數學建模,也拿過國家獎,用的就是matlab。
我不知道你哪裡得出程序員鄙視matlab這一出,高級黑?
另外,樓下瞎吹matlab是什麼工程院院士用的啥啥啥的,抱歉,我一個二本院校小菜雞也用,程序員也用。而且,我是不是可以懟C語言,誰人不用?
歸根到底,就是個引戰,兩個東西不在一條線上,有什麼可對比的?還鄙視?我們程序員也沒那功夫好吧,福報領不完,閑得慌。
作為一個寫了多年代碼的程序員,對於所謂的程序員鄙視鏈已經顯得比較麻木了,對於程序員這份職業對於大部分的人來講可能就是一份工作,工作的目的就是多拿點工資能夠更好的改善家人的生活,當然也會存在一些人發自內心的對編程這份工作感興趣,如果是發自內心的喜歡一件事情,就會非常容易出成績也會工作起來非常的輕松。對於存在所謂的程序員的鄙視鏈一般是對於剛入行的或者門外漢會這么提,軟體行業分類十分眾多而且每個種類裡面都存在很大的差異性,都有其自身的難度所在不能簡單的認為哪種編程語言就是最優的,如果有這種想法證明對於軟體的認知還只是存在於初級的階段。
對於MATLAB軟體使用主要的群體在於科研工作者,無線通信、深度學習、圖像處理與計算機視覺、信號處理、量化金融與風險管理等領域使用的比較多,屬於集成性非常強的工具軟體,軟體從本質上講就是工具般的存在,服務於各個行業如同數學在科學領域的作用,無論多厲害的軟體高手最終還是要以開發的產品為主要的代表作,對於軟體使用層級相對弱化很多,所以作為一個程序員鄙視MATLAB使用者,其實是沒有道理存在的。一個使用者一個開發者本質上沒有鄙視鏈條的存在,而且用好一個軟體也不是一件很簡單的事情,MATLAB屬於集成性非常強的很多成熟的庫文件都集成在裡面了,對於科研工作者來講是一種極好的工具存在。
程序員做的本質工作就是做出優秀的產品給用戶使用,但是很多開發者由於長期盯著功能模塊往往忽視了很多外在的東西存在,特別是初級的程序員始終覺得底層的編程語言在難度上要高於java類的高級語言,其實每種編程語言都有其存在的價值所在,而且每種編程語言都有其內涵所在,真正意義上掌握一種編程語言也不是一件很輕松的事情,從程序員的角度出發只要是掌握了一種編程語言再去學習新的編程語言都會簡單許多,編程語言雖然在語法上有區別但在編程模式上大同小異,如同線程的概念如果是在學習C語言編程的時候已經掌握了,那麼切換到別的語言也會變得順理成章,只是在語法細節上的差異而已。
在程序員領域所謂的鄙視鏈其實更多是外行在擺弄的事情罷了,對於真正意義上的程序員寧願多去看看代碼也懶得去做這種無聊的事情,術業有專攻,但是編程領域行業的差距就十分的巨大,各個領域有機的組合在一起才能夠真正鑄造出好的產品來,從目前編程大的趨勢上看應用類的編程在各個領域展示會更加的明顯,因為軟體行業經過幾十年的快速發展已經積累了大量優秀的資源庫,很多偏向於應用級的軟體就是借鑒和積累了前人的經驗。
每種軟體都有其存在的價值和屬性。而且只要生態存在那麼就會有意義存在,MATLAB的存在讓很多科研工作者提供了極大的便利,從國內軟體所欠缺的就是對於軟體基石的投入,國內大型的互聯網公司把主要的精力放在應用級層面的開發,都是想著如何開發出億萬級的用戶的應用,對於基礎層面的軟體投入想對稀少,基礎軟體層面的投入需要長期周期長見效慢,而且這種生態的建立需要相當漫長的時間,像常見的工具軟體圖形處理以及文字處理軟體,看起來不起眼都是背後的企業經過多年的時間鍛造出來的,一旦涉及到版權層面就會容易被卡脖子,華為公司公司被美國公司打壓就是典型的例子,基礎才是決定是否能夠成功的關鍵因素。