在GUI的回调函数上使用函数
问题描述:
使用GUIDE创建一个接口,当单击该按钮时将执行函数[x,y] =函数(a,b,c,d)。我有问题来解决这个问题。 GUIDE使用语法varargout = LineasA(varargin)创建一个自动生成的函数。在GUI的回调函数上使用函数
我使用这种语法调用GUI [x,y] = LineasA(a,b,c,d),但是得到很多错误,我不能理解它们,希望你们能帮助我。
错误,我得到的是:
Error in ==> LineasA>LineasA_OutputFcn at 73
varargout{1} = handles.output;
??? Error using ==> feval
Output argument "varargout{2}" (and maybe others) not assigned during call to
"C:\Users\ZeTa\Documents\MATLAB\ImagenB\LineasA.m>LineasA_OutputFcn".
Error in ==> gui_mainfcn at 263
[varargout{1:nargout}] = feval(gui_State.gui_OutputFcn, gui_hFigure, [],
gui_Handles);
Error in ==> LineasA at 40
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
Error in ==> ImagenB at 17
[MatrizB,Cuenta]=LineasA(Cuenta,waveformObj,channelObj,MatrizB);
Tnxs提前..
奥兹
答
你,你所得到的输入这个功能是明确的,并在您想要的输出去。将输入和输出存储在传入回调的句柄结构中是正确的编码。此外,适当的回调结构为:
LineasA(hObject, eventdata, handles)
但是,如果你坚持打电话,并从基础工作空间存储,你可以做如下:
LineasA(hObject, eventdata, handles)
% grab values from base workspace
Cuenta = evalin('base', 'Cuenta');
waveformObj = evalin('base', 'waveformObj');
channelObj = evalin('base', 'channelObj');
MatrizB = evalin('base', 'MatrizB');
% the rest of your code
% assign outputs
assignin('base', 'MatrizB', matrizB);
assignin('base', 'Cuenta', Cuenta);
end
不过我建议得到的这些值处理结构并且不使用evalin和assignin,它们通常是不好的编码技术。