MATLAB编程最佳实践

lin*_*lof 33 matlab

我正在寻找有关如何构建中型到大型MATLAB项目的资源,特别是那些涉及多个独立模块的项目.如何管理全局配置变量,如何将项目构建到文件夹中,如何管理模块之间的耦合等.

关于这个主题是否有某种标准文本?看起来大多数MATLAB教科书都是由科学家或工程师编写的.我想,我正在寻找的是由软件工程师编写的任何MATLAB教科书.:-)

Mik*_*ail 25

MATLAB是大型项目的一个不寻常的选择,并且非常适合汇编程序,COBOL或SQL等任务.如果您仍然选择MATLAB,那么至少会自动测试代码!所有类型的测试 - 集成测试,单元测试,负载测试!当然还要使用版本控制系统.

如上所述,MATLAB并不是在考虑大型项目的情况下创建的,因此关于项目结构,模块,耦合的唯一最佳实践是常识.

如果您正在接管现有的大型MATLAB项目,那么我很抱歉,重构将是噩梦.如果你要用MATLAB开始一个新的大型项目,那么你就疯了 - 对于数字性能而言,有更好的MATLAB替代方案.大型项目意味着几乎所有代码都是业务逻辑,而不是数字,因此为什么上帝的缘故MATLAB?

大项目意味着结构良好的组件,这意味着OO,这是MATLAB的弱点,因为它牺牲了数据性能的堆性能到不可用程度.

我的经验:

  1. 我花了数年时间参与了一个50万个LOC MATLAB项目.
  2. 我已经看到多个大型MATLAB项目无痛过渡到C#.

使用MATLAB,您仍然需要使用大量的Java来获得体面的GUI,C/C++ MEX用于快速而非数字部分,如导入,可能是SQL等.使用Java(或更好的C#)和免费的数字库,您只有一种语言这非常适合大型项目中所需的一切.

我并不是说MATLAB很糟糕 - 它是快速原型和数字的规则!而且Simulink没有其他选择(但可以从任何地方编译和使用).

  • @oli我会更进一步说Matlab语言根本就没有设计 (14认同)
  • +1:我基本同意这些观点.在我以前的公司,我们使用Matlab完全模拟低层无线协议栈.这对于信号处理方面非常有用,但控制和配置(即动态管理用户的"业务逻辑"等)是几乎无法维护的代码的绝对噩梦.我同意Matlab语言的设计并没有考虑到这种复杂性. (7认同)

Jon*_*nas 8

您可能想看看"Matlab风格的元素"(Loren Shure的评论).

此外,对良好编码实践的这种审查可能是有用的.