是否可以從函數內部寫入GUI?如何在MATLAB中創建一個函數內的GUI?
問題是所有GUI函數的回調都在全局工作空間中進行評估。但函數有自己的工作空間,不能訪問全局工作空間中的變量。是否有可能使GUI功能使用該功能的工作區?例如:
function myvar = myfunc()
myvar = true;
h_fig = figure;
% create a useless button
uicontrol(h_fig, 'style', 'pushbutton', ...
'string', 'clickme', ...
'callback', 'myvar = false');
% wait for the button to be pressed
while myvar
pause(0.2);
end
close(h_fig);
disp('this will never be displayed');
end
此事件循環將無限期地運行,因爲在函數的回調將不會修改myvar
。相反,它會在全局工作區中創建一個新的myvar
。
OP將需要將輸出變量更改爲其他值,並在基工作區中創建「全局myvar」以使其工作。 – Azim 2008-11-07 17:29:26
這真的是唯一的方法嗎?對於這項工作來說,使用全局變量似乎有點生硬。 – bastibe 2008-11-08 08:55:55