(グローバル変数として公開されている関数ハンドルを使用して) GUI/GUIDE ファイルでサブ関数を呼び出そうとすると、GUIDE Figure で軸を特定の軸に設定しても、常に新しい軸が作成されます。なぜこれが起こっているのか誰にも分かりますか?ガイド コードは次のとおりです。
###############################################################
function varargout = demo(varargin)
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @demo_OpeningFcn, ...
'gui_OutputFcn', @demo_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
function demo_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
global myhandles updateFunction;
myhandles = handles;
updateFunction = @update;
function varargout = demo_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
function pushbutton1_Callback(hObject, eventdata, handles)
update();
function update()
global myhandles;
axes(myhandles.axes1);
plot(1:2,1:2);
###########################################################################
そして、私がそうするとき(上記のファイルの外):
global updateFunction;
feval(updateFunction)
GUI Figure ではなく、新しく作成された Figure ウィンドウに常にプロットが表示されます。なぜこうなった?