2011-02-18 102 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