量化投资:MATLAB数据挖掘技术与实践(第2版)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.3 MATLAB的开发模式

3.3.1 命令行模式

命令行模式即在命令行窗口区进行交互的开发模式。命令行模式非常灵活,并且能够很快给出结果。所以,命令行模式特别适合单个的小型科学计算问题的求解,如解方程、拟合曲线等;也比较适合项目的探索分析、建模等工作,如在入门案例中介绍的数据绘图、拟合、求最大回撤值。命令行模式的缺点是不便于重复执行,也不便于自动执行科学计算任务。

3.3.2 脚本模式

脚本模式是MATLAB常见的开发模式,当MATLAB入门之后,我们的很多工作都是通过脚本模式完成的。在入门案例中产生的脚本就是在脚本模式下的开发结果。在该模式下,可以很方便地进行代码的修改,还可以执行更复杂的任务。脚本模式的优点是便于重复执行计算,并可以将整个计算过程保存在脚本中,移植性比较强,也非常灵活。

3.3.3 面向对象模式

面向对象编程是一种正式的编程方法,它将数据和相关操作(方法)合并到逻辑结构(对象)中。面向对象编程可提升管理软件复杂性的能力,这在开发和维护大型应用与数据结构时尤为重要。MATLAB的面向对象编程功能使用户能够以比其他语言(如C++、C#和Java)更快的速度开发复杂的运算应用程序。用户能够在MATLAB中定义类并应用面向对象的标准设计模式,可实现代码重用、继承、封装及参考行为,无须费力执行其他语言所要求的低级整理工作。

MATLAB的面向对象模式更适合开发稍微复杂的项目,更直接地说,就是该模式可更有效地组织程序的功能模块,便于项目的管理、重复使用,同时使得项目更简洁、更容易维护。

3.3.4 三种模式的配合

MATLAB的三种开发模式并不是孤立的,而是可以相互配合的。在项目的初期,基本是以命令行模式为主,然后在脚本模式下逐渐形成脚本。随着项目成熟度的不断提升,以及功能的不断扩充,这时就要使用面向对象模式,逐渐将功能模块改写成函数的形式,加强程序的重复调用。当然,即便项目的成熟度已经很高,仍需要在命令行模式完成测试函数、测试输出等工作,同时新增的功能也需要在脚本模式进行完善。所以,三种开发模式的有效配合是项目代码不断精炼、提升的过程,如图3-13所示。

图3-13 MATLAB的三种开发模式

下面对在3.1节中介绍的入门案例进行扩展。现在有10只股票的数据,那么,如何选择一只投资价值大同时风险比较小的股票呢?

在3.1节中我们已经通过命令行模式和脚本模式创建了评价一只股票价值和风险的脚本。如果将该脚本重复执行10次,再进行筛选也能完成任务,但是当股票数达到上千只后,就会比较困难,我们希望程序能够自动完成筛选过程。此时就可以采用面向对象模式,将需要重复使用的脚本抽象成函数,这样就可以更容易地完成该项目。