0

我正在为我的项目GUIDE创建一个。GUIMATLAB

在我的一个按钮回调中,我调用了一个函数。

[Name]= otherFunction(inputVariable);

set(handles.name,'String',Name);

在收到该函数的输出后,我将名称标签设置为 Name 的值。是否可以从函数内部进行设置?我必须做什么才能允许该功能访问 GUIData?

我曾尝试从该函数内部使用 set/get,但我似乎无法让它工作。

或者,无论如何我可以让“句柄”在全球范围内可用?

4

1 回答 1

3

从一个空白的 GUI 开始并简单地向它添加一个按钮(标记为“btnTest”),以下代码可以正常工作:

%% --- Executes on button press in btnTest.
function btnTest_Callback(hObject, eventdata, handles)
%[
    changeName(handles);
%]

%% --- Inner function
function [] = changeName(handles)
%[
    set(handles.btnTest, 'String', 'toto'); 
%]

因此,您的代码中可能还有其他问题。

如果您不打算将“句柄”结构传递给“更改名称”函数(即全局可用的句柄),您可以这样做:

%% --- Executes on button press in btnTest.
function btnTest_Callback(hObject, eventdata, handles)
%[
    changeName();
%]

%% --- Inner function
function [] = changeName()
%[   
    handles = guihandles(); % recover handles for current figure
    set(handles.btnTest, 'String', 'toto'); 
%]

但它比直接传递“句柄”要慢得多。

于 2011-04-05T21:06:27.997 回答