技术文章和通讯

在MATLAB编写程序

大卫•加里森MathWorks


一个应用程序是一个独立的MATLAB®与一个GUI程序,自动任务或计算。完成task-getting数据所需的所有操作的应用程序,对数据进行计算,得到的结果是在应用程序内执行。

从R2012b开始,你可以计划自己的应用程序和其他MATLAB用户分享。你也可以下载应用程序写的别人的MATLAB中央文件交换或其他来源和安装在应用画廊(图1)。

图1所示。MATLAB应用画廊,一个定制的应用程序安装在我的应用程序。
图1所示。MATLAB应用画廊和一个自定义应用程序安装在“我的应用”。

编写应用程序

因为一个应用程序的GUI用户与之交互,编写一个应用程序从编写其他的MATLAB程序在某些方面有所不同。编写一个应用程序时,您创建一个事件驱动的程序。一旦你的应用程序在屏幕上,它通常处于闲置状态,直到用户原因事件通过与应用程序交互实例,通过输入文本或点击一个按钮。为了应对这一行动,回调函数是执行。提供的回调函数,应用程序的作者,执行一些代码来响应事件触发它。例如,单击运行按钮可能会执行一个回调函数,执行一些工程计算和更新GUI中显示一个阴谋。

在事件驱动程序设计中,每个事件回调是一个简短的函数,必须得到需要的数据,必要时更新应用程序,存储结果,其他的回调函数可以访问它们。底层应用程序本质上是一个小的功能集合在一起工作来完成更大的任务。当编写事件驱动程序时,你面临的问题编写回调用于应用程序的控制和管理这些回调之间的信息共享。

MATLAB支金宝app持两种方法来编写应用程序。您可以:

  • 从头编写代码
  • 使用指南,MATLAB图形用户界面设计环境

大多数用户发现它更容易使用图形指南制定的GUI和生成一个事件驱动框架应用。一些人,但是,喜欢额外的控制他们从从头编写应用程序。本文描述的方法从头编写应用程序使用面向对象编程。我们发现这种方法是一种有效的方式创建健壮的用户界面。

处理对象:股票行情应用例子

对象管理一组相关的函数和数据共享。对于编写事件驱动程序对象尤其有用。然而,不幸的是,许多程序员避免使用对象,因为他们觉得他们太复杂或者因为他们发现学习面向对象编程的任务艰巨。

别担心。你不需要成为一个专家在面向对象编程中使用对象来构建一个应用程序。你只需要理解一些基本概念。

当你创建一个对象,您需要定义两件事:它的列表属性——,而且其内部存储的数据方法——功能操作中存储的数据的属性对象。

让我们看看一个简单的股票行情软件,更新股票价格随着时间的推移图对于一个给定的符号(图2)。

图2。简单的股票行情软件。
图2。简单的股票行情软件。

simpleStockTickerMATLAB程序实现应用程序创建该对象。

MATLAB程序的第一行告诉你定义一个新类。

classdef simpleStockTicker处理

classdef关键字定义一个新类型的对象(一个“类”)。类的名称,simpleStockTickerMATLAB文件的名称必须匹配。的最后一部分,<处理指示MATLAB不要让这个对象的副本。这样你所有的应用程序将开始;只有类名(simpleStockTicker在我们的示例中)将会改变。

接下来的部分属性。定义的属性部分属性结束……语法。它就是你定义的数据将被使用的对象。

属性

这个类使用两组属性。前五个属性存储处理可视化组件的用户界面图,轴,价格线绘制,“象征”标签,编辑框,在这里您可以键入符号名称。最后四个属性用于存储数据获取和股票价格。这些属性可以使用任何方法的类。

使用属性有助于解决编写应用程序的一个常见问题:在哪里存储需要共享的数据的不同部分应用。传统上,最常见的方法是使用guidata或全局变量来存储共享数据,但这些方法有局限性。很难保持guidata最新的,当应用程序需要访问该数据。共享数据存储为属性很容易定义,容易从任何地方访问的应用程序。

定义对象的属性后,使用您定义它的方法方法结束……语法。第一种方法,构造函数,用于创建对象。构造函数的名字总是与类名相同。

函数的应用

注意,构造函数必须有一个输出变量。输出变量是指由构造函数创建的对象。你可以给它任何你喜欢的名字。类在我们的示例中使用的名字应用程序。输出变量是特殊的,因为它使用内部类定义文件引用对象的属性和方法。例如,您将引用对象的NumValues属性通过使用语法app.NumValues。类的所有方法都定义为这个特殊的变量作为第一个参数。

在我们的示例中,构造函数执行三个任务:它创建的所有视觉对象的用户界面,初始化价格策划,并创建一个定时器对象将定期更新最新的股票价格。更新率的控制app.TimerUpdateRate类的属性。

接下来的三个方法在这类的回调。下面是CloseRequestFcn图窗口回调。它被称为图时关闭。它看起来像其他你可能写回调函数,但有一个例外:变量应用程序必须插入方法的参数列表的开始。

函数closeApp

请注意,类定义文件可以包含其他的方法,以便不,getQuote方法。其他方法调用此方法的类。

使用类的优点

程序员经常促进面向对象编程的优点超过传统的函数式编程。他们引用封装,抽象,多态性使用面向对象的方法的理由。,这些都是有用的概念,您不需要了解他们作为MATLAB编写应用程序类。最重要的原因是使用一个类来创建应用程序的类提供了一个有用的方法来管理数据共享应用程序的不同部分。对象的属性保存所有需要的数据共享(回调)的应用程序的方法。你不再需要担心使用guidata或全局变量,因为现在所有的数据存储在类的属性。

更多的应用程序使用一个类的例子,请了解更多部分。

2012 - 92062 v00出版

查看相关文章的能力