為什麼不少程式設計師認為Matlab的語言設計不優雅甚至比較醜?能否舉出一些例子來說明?

時間 2021-05-11 13:03:58

1樓:常恭

因為 matlab 沒有官方的 style guide (風格指南),再加上 matlab 的函式,歷史包袱沉重,新老函式設計風格非常不同,同乙個功能又可以用不用函式實現,所以一千個使用者有一千個 matlab。

2樓:李方

cs的還是不懂ee的世界。這個世界不只有物件導向和二叉樹,還有傅利葉變換,數值分析,濾波…等。當你用python 調小波包玩玩的時候,一定會哭著回來找matlab 的。

3樓:

說句得罪你們程式設計師的話,現在的程式語言太原始了,竟然還需要系統學習的專人去用。

你問太高看自己,我乙個外人都看出來了,現在太多的程式語言就是朝著工具方向走的,是朝著有一定教育的人就能用就能寫的方向走的。

當年開電梯還需要專人呢,你看看現在

4樓:等待一條魚

不是matlab醜,是寫matlab的人普遍不是軟體工程的,寫出來的只管實用,不管美觀,只要把公式推導出來,matlab就能很好的實現,很接近數學思維,但是matlab寫得溜的可能連面相物件是啥都不需要知道。

當然也可以把matlab寫得好看,多做些函式,命名按照規則來。搞點演算法什麼的matlab速度絕對比python快的多,現成的函式一大把。

matlab的主要缺點是要收費。還有目前除了學術圈,網際網路行業用的不那麼普遍。

5樓:Abakus

matlab 沒有 +=, -= 等等實在是無奈啊numpy 可以 :

x[i+j, :] += y

matlab 就必須要:

x(i+j, :) = x(i+j, :)+y;

如果indexing比較複雜的時候這個真的很姜。

6樓:團團

Matlab壓根就不是給程式設計師用的。

是給非程式設計師用來跑結果的。

能出結果就行,至於好不好看,那都是次要的。

只有少數的Matlab程式需要跑很多遍,大部分都是只跑幾次就好了。

7樓:

想說說我的看法,MATLAB和MMA都用過,後者讓人驚豔,靈活度技巧都很讓人折服,但感覺沒有前者穩定踏實,比如檢視變數,寫完後再回頭看程式,後者不是那麼容易懂

8樓:Jared H

確實不怎麼優雅…看到前排幾個回答都十分贊同,變數名覆蓋了函式也沒人囉嗦你一句,還有就是矩陣函式的邏輯不連貫。總之乙個原則--好上手!但是用多了真的會犯病,每次想弄個變數名都要掙扎一下。

9樓:

我覺得matlab還是有蠻多優點的.我是做影象的,debug的時候經常要把矩陣imshow()出來看下,還比如我要在斷點處檢查程式的正確性,就設定斷點停下來之後在命令視窗檢查一下變數的狀態是不是符合預期.

當然我這說的都是matlab執行環境的方便之處.

我也嘗試過使用其他的工具比如numpy和sklearn這些python庫,但還是覺得不是很方便,當然可能我並沒有掌握這些工具.

10樓:楊凱鳴

舉乙個例子,MATLAB裡的diag 函式,它有兩個用法:

當引數是向量是,返回乙個以這個向量為對角元素的方陣,如diag([1 2 3]) = [1 0 0;0 2 0;0 0 3]

當引數是乙個矩陣時,返回該矩陣的對角元素,如diag([1 2 3;4 5 6]) = [1 5]當我發現這個事實時,已是遇到問題的一小時後。當時心中萬馬奔騰,在所有的diag函式呼叫外都加了乙個條件判斷,並從此養成了就算函式名再明顯,你已經試過很多例子都和自己的想法一致,也要去檢查一下文件防止被坑的好習慣。

11樓:

知乎最讓我討厭的就是程式設計師太多,在很多問題上看法有偏差。

Matlab對於工程師(不包括程式設計師)來說就是大號計算器,唯一用處就是算。對於動不動就要翻好幾斤重的手冊查個數的工程師來說已經無所謂優雅不優雅了,能最快給我結果就行。相比之下其他程式語言寫起來慢的要死。

從程式設計師角度看,Matlab確實很爛。但你要是想拿Matlab寫應用或者作業系統那絕對是腦子進水了,人家就不是給你用的。

12樓:梅澤Maeser

對不起,matlab並不是為程式設計師設計的。

更準確地說,matlab是借用了計算機語言的方式實現了工程運算。你可以認為,matlab僅僅是乙個計算器。

因此,並不需要由程式設計師來評價matlab的語言。

好吧,儘管我也認為髒亂差。但是但是,竟然有人說phython,我也是…

13樓:

significant bit能逼死人。在做image rectification的時候經常把cholesky decomposition搞崩潰。

14樓:

實在看不下去Matlab被一些半瓶水人亂噴,有沒說到點子上的,也有似是而非自己都沒弄太明白的。手機碼字簡單說下。

有人點乘語義都沒弄明白的就先不說了

。還有人對函式呼叫和矩陣索引都用圓括號也能東扯西拉不相關的分析,這個也不說了

單說這位:

函式指標(高階函式),處理異常,控制封裝

這幾樣哪個matlab不能搞?nested function, anonymous function,error,try catch,mexException,class,handle class ,這些都是幹嘛的?

15樓:Leung Garging

熟悉matlab的使用者都表示對語法無所謂,入門學習某工具箱時真心抓狂,無數重疊功能的函式,還有各種形式的型別不相容,而且語法跟程式語言差異略大。

估計是因為matlab不全是自己製作函式和工具箱,還有很多合作機構和單位一起開發,介面上不好統一。

16樓:Sion Wang

看了一圈回答,挺Matlab的大概持兩種態度。其一是「Simulink就是好用不服來辯」,另一種則是「我除了Matlab別的都不會你來打我呀」。

前一種——是的沒錯Simulink真的很好用...

後一種——誒你不會別的還佔了理了是嗎?

就我個人而言,我這學期選了兩門Matlab,然後覺得自己處在水深火熱之中。矩陣運算啦求特徵值啦確實很好用,但是讀起來的觀感簡直是嗶了狗了...用Matlab實現的東西我都不想再看第二遍。

啊其實還是用python時被慣壞了。

17樓:十天

小生境真逗比

你C執行1ms,我matlab執行1s不行嗎,1分鐘我也等得起

拼語言你敢跟我Verilog拼?分分分鐘虐死你,你C語言1s的東西,我大Verilog1ms算出來,有意思?通訊發射機裡面有用cpu的處理資料的?

cpu什麼的速度不是太慢了。。。。

18樓:劉鏟鏟

什麼樣的語言算是優雅呢?grass mud horse?

matlab簡直是太好用了,檢驗演算法行雲流水,查詢錯誤方便快捷,不浮誇不矯情,還不用編譯。

資料型別即用即改,矩陣大小隨意變換,每個函式前幾行的注釋都預設是幫助文件,變數可以隨意檢視,給人一種春天般的感覺。

但是不能和PHP比,畢竟PHP是最好的語言。

19樓:seven七

作為一名應用數學的,即將參加數學建模比賽(被老師趕著上架,全班都上)假設參加比賽。只有三天時間。你讓我花十天去寫個c++和c還是python和php???

matlab輕鬆的好吧。有效率就可以了。優不優雅有用?

當然如果能更優雅更好。但是前提是有那麼強大的功能。

20樓:懂太少

不過是用別的語言很容易寫的東西,發現剛上手用matlab的時候不那麼好做罷了。反過來,matlab容易做到的別的語言會很容易???相對於優雅,我更看重效率與清晰度,寫的注釋真是又臭又長。

我花快兩周的時間寫的matlab,我用cpp敲了乙個月多才搞出來。

21樓:

只用matlab做過幾個課程Project,不太喜歡的點有:

不能在主檔案裡定義函式

似乎沒有block scope

匿名函式似乎只能限定在一行以內,體驗過一些函式式語言後這裡就會很不習慣,要不就像C那樣直接斷了我的念想,要支援就給個完整的支援。

用「matlab功能強大」來反駁「matlab程式語言的設計有問題」,就好比在這裡談論乙個女明星的顏值,你非說她心靈美,熱心公益與慈善一樣。

你為什麼想當程式設計師?

作為乙個從小被教育好好學習書本知識,那些上網的都粘在網上了 成天玩電腦遊戲都玩傻了 從小學到高中對於計算機的印象就是網咖 講台上的電腦 陰冷又性冷淡風的機房 word flash 眼睛近視 演算法競賽的人.我至今都無法抹去我這十多年教育使我產生的對計算機的牴觸情緒 雖然我一直在努力說服我愛上它,但是...

程式設計師,為什麼如此迷茫?

對大多數普通程式設計師來說,工作多年用的技術最後都沒有什麼卵用,而且大概率被淘汰,當你人到中年,只能越來越走下坡路,前途暗淡。 海上鋼琴師 16年老程式猿,沒覺得迷茫啊?不是只有程式猿才迷茫,迷茫也不是因為進了IT行業。每天忙得像狗一樣,哪有空去迷茫嘛 攤手 Edward 程式設計師為什麼會迷茫,對...

為什麼程式設計師都在抱怨?

其他的行業也同樣有人抱怨,可能在別的論壇,可能是在現實里根家人朋友同事在抱怨。我一般把每個人都看成乙個個體,不喜歡給人分類或者下定義。所以我個人感覺抱不抱怨跟職業不是正相關的。 但凡工作純為錢者皆會如此。因為永遠有另乙個賺的更多 待遇更好的 別人的工作 只要摻一點興趣到工作裡,便好很多了 高中奮鬥,...