전역 변수로 노출 된 함수 핸들을 사용하여 GUI/GUIDE 파일에서 하위 함수를 호출하려고하면 새 축이 항상 설정되어 있어도 생성됩니다 축을 GUIDE Figure의 특정 축으로 이동합니다. 왜 이런 일이 일어나는 지 아는 사람이 있습니까? GUIDE 코드는 다음과 같습니다MATLAB : 외부에서 GUI/GUIDE 함수 호출
###############################################################
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의 그림에서 새로 만든 그림 창에서 플롯을 참조하십시오. 왜 이런 일이 일어나는 걸까요? 내가 시도 할 것
업데이트 기능을 확인해야합니다. 그것은 당신을 돕는 데 오히려 중요합니다. 또한 전역 변수는 일반적으로 필요하지 않으며 종종 코드를 유지 관리하기가 어렵습니다. 코드를 다른 방식으로 구조화하는 것이 좋습니다. – MatlabDoug