2010-09-20 49 views
3

可以说有人用GUIDE制作了一个Matlab GUI。现在我想在编程环境中使用该代码 - 这不是人在环路中。对我来说,“脚本化”与GUI的人机交互以便按照适当的顺序操纵各种控件以使工具缩小我的数量并获得其结果,对我来说最简单的方法是什么?我正在寻找一种非侵入性的方式来重用此工具的功能。我调用Matlab功能的理想编程环境是Java。Matlab的GUI自动化?

我可以打开GUIDE .fig并找出各种控件上的所有回调函数,但设计模式似乎是将所有数据都推送到句柄变量中。

我已经有能力使用Java Builder的JA生成Java类,如果这有助于任何方式。任何建议,将不胜感激。

回答

4

MTALAB GUI是Java GUI。对于GUI自动化,Yair Altman博客上最近发布了一篇文章:http://undocumentedmatlab.com/blog/gui-automation-robot/

以下内容仅适用于您可以重写应用程序的情况。

通常不需要任何形式的GUI自动化来完成像您这样的任务。应用程序应该有following architecture模型 - >业务逻辑 - > GUI。每层与上面的层分离 - 模型一窍不通GUI一无所知。然后可以以编程方式调用业务逻辑,而无需显示GUI。 Here是MATLAB中MVC实现的一个例子。

因此,应避免使用GUIDE。在MATLAB中有一个无证件layout manager,文件交换中也有一些。

在您的情况下,您可以将整个业务逻辑放在GUI逻辑之外,使GUIDE回调只能称为您的业务逻辑功能。

+0

+1完美的答案,应该仅用于**测试目的**,如您所说。 – zellus 2010-09-21 16:35:09

1

提取形式如下post。使用

guiname('pushbutton', object, eventdata, handles) 

调用'guiname'中的回调。

你有没有考虑过使用MVC模式。从GUI中提取“模型”可能会给您带来可重复使用的代码。