让多个数字访问相同数据的正确方式是什么?

时间:2011-09-15 21:38:12

标签: oop user-interface matlab

我目前正在重构一堆旧的Matlab代码(pre-oop Matlab),而且GUI代码很乱。

GUI基本上是一堆独立的Matlab图形,每个图形必须以不同的方式呈现相同的数据。

旧代码通过使用全局结构来处理此问题,以保存要与元数据一起显示的所有数据(主要是关于绘制当前数据所需大小的信息)。

我的问题是,在当前版本的Matlab中,这是否是在风格上正确的方式。我已经考虑将数据捆绑到句柄类中,将元数据捆绑到另一个中,然后将两者都传递给GUI中的每个图形,但我不知道添加的封装是否值得添加参数的混乱。 / p>

在Matlab GUI编程中是否有任何一般的样式规则来做出这样的决定?

1 个答案:

答案 0 :(得分:4)

有几种方法可以做到这一点。您可以使用getappdatasetappdata将数据与单个数字相关联:

%# Associate some data to the main figure handle...
setappdata(main_FH, 'myData', data);

%# Retrieve that data from the main figure handle
myData = getappdata(main_FH, 'myData');

%# check if some app data exists for main_FH
validAppData = isappdata(main_FH, 'myData');

您也可以使用set(FH, 'UserData', myData)(以及get()),尽管每个句柄只有一个UserData属性;您可以将其设置为结构并使用isfield()而不是isappdata()来查看myData中的字段是否存在。

最后,有guidata,但这实际上是GUIDE GUI的___appdata包装。

总结了在The MathWorks website上传递数据的方法。