2011-02-18 122 views
31

我正在尋找關於如何構建中型到大型MATLAB項目的資源,特別是涉及多個獨立模塊的項目。如何管理全局配置變量,如何將項目組織到文件夾中,如何管理模塊之間的耦合等。MATLAB編程最佳實踐

是否存在有關此主題的某種標準文本?看起來好像大多數MATLAB教科書都是由科學家或工程師編寫的。我想,我想要的是由軟件工程師編寫的任何MATLAB教科書。 :-)

+4

試試這個:http://www.datatool.com/prod02.htm – rskar 2011-02-18 15:07:52

回答

24

對於大型項目,MATLAB是一個不尋常的選擇,同樣適用於彙編,COBOL或SQL等任務。如果你仍然選擇MATLAB,那麼至少會自動測試代碼!所有類型的測試 - 集成測試,單元測試,負載測試!當然還要使用版本控制系統。如上所述,MATLAB不是用大型項目​​創建的,因此關於項目結構,模塊,耦合的唯一最佳實踐是常識。

如果你正在接管現有的大型MATLAB項目,那麼我很抱歉,重構將是一場噩夢。如果你打算用MATLAB開始一個新的大型項目,那麼你瘋了 - 有很多更好的MATLAB替代品,它們在數字性能方面並沒有那麼糟糕。大項目意味着幾乎所有的代碼都是業務邏輯,而不是數字,所以爲什麼上帝的緣故MATLAB?

大項目意味着結構良好的組件,這意味着OO,它是the weak point of MATLAB because it sacrifices heap performance for numeric performance to the degree of unusability

我的經驗:

  1. 我在一個半億LOC MATLAB項目花了幾年時間英寸
  2. 我已經看到多個大型MATLAB項目無痛地轉換到C#。

使用MATLAB,您仍然需要使用大量的Java,才能看起來像樣的GUI,C/C++ MEX用於快速非數字部分,如導入,也許SQL等等。使用帶有免費數字的Java(或更好的C#)圖書館只有一種語言,它非常適合您在大型項目中需要的所有內容。

我不是說MATLAB是壞的 - 它規定了快速原型和數值! Simulink沒有其他選擇(但可以隨處編譯和使用)。

8

你可能想看看"The Elements of Matlab Style"review Loren舒爾)。

此外,這個審查good coding practices可能是有用的。

+0

Matlab風格的元素。可能是一個短的! – 2011-02-19 12:23:26

+1

另一個[來自Loren Shure的帖子](http://blogs.mathworks.com/loren/2014/01/29/coding-best-practices-a-good-read/)推薦這篇文章:[科學計算的最佳實踐](http://dx.doi.org/10.1371/journal.pbio.1001745)。 – horchler 2014-02-01 00:54:23