我应该在MATLAB中使用面向对象的编程吗?

时间:2015-04-02 12:48:15

标签: matlab oop

我有一个问题,我需要在matlab中处理很多数字,代码开始变得混乱。不同类型的绘图对象在不同阶段添加到代码中,有些具有图例,有些则没有。问题是没有NULL传说。一旦创建了对象,传说也是如此。但是,在调用legend(handles,...)之前,它们不会显示。这意味着如果绘制了一些东西,需要一个图例条目,而另一些则不需要,需要传递很多句柄。

现在,文件开始很长,大约1500行,一些全局变量跨越文件中的许多函数等等。为了防止“请勿使用全局变量”注释,我知道全局变量通常是不必要的,但是当我把手放在它上面时代码就像那样。但是,现在代码变得越来越混乱,我考虑使用面向对象编程(OOP)来处理数字。

我们的想法是让自定义图形对象自行处理,从而使代码更易读,分成更小的块。这个想法是有一个像

这样的设计
class Figure

private:

MainFrame;
SubFrame;
Lines;
Legends;
Title;
X-Label;
Y-Label;

Methods:

To be defined, for example formatting plotting, edit title,… 

完整的设计并没有完全考虑过,但问题的关键在于在matlab中使用OOP。到目前为止我所看到的并没有真正使用它。有这个原因吗? 有没有人可以在matlab中给OOP带来利弊?是否建议在matlab中使用OOP?

我已经添加了有关我的问题的信息,因为我了解OOP对于大型复杂问题更需要,因此,考虑到问题的复杂性,答案最好采取缺点。 (例如,不要在matlab中使用OOP,只有在遇到复杂问题时才能使用OOP,随时随地执行,...)

1 个答案:

答案 0 :(得分:1)

好的问题是关于Matlab中的OOP - 但是在你的组织中,它不是Matlab中的OOP吗?

我的意思是考虑谁将使用/开发和维护未来的代码。

背景:我已经将OOP用于我自己的工具箱(因为它复杂/足够大以保证它 - 我开发/维护它) - 但是在我的大多数客户的咨询工作中我创建了函数(在某些情况下)调用我的工具箱) - 因为当作业完成后,他们会获得源代码,而且大多数人(更多)更容易使用函数而不是类。

总之 - 我决定是否在工作细节上使用OOP以及将来使用(开发和维护)代码的情况。

回到你的主题 - 我会考虑你认为代码将去哪里以及谁将开发/维护它。他们会对课程感到满意 - 或者他们会更熟悉课程吗?

仅供参考:去年我和Mathworks交谈,他们说他们运行了多个" Matlab简介"每周的课程 - 但只有1" Matlab课程"每季度!!这为您提供了行业中Matlab类使用水平的指示。