Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GUI-matlab中的UIControl回调_Matlab_User Interface_Matlab Guide - Fatal编程技术网

GUI-matlab中的UIControl回调

GUI-matlab中的UIControl回调,matlab,user-interface,matlab-guide,Matlab,User Interface,Matlab Guide,我有一个下面的GUI程序来运行Matlab2014b中的另一个GUI图形 % --- Executes on button press in Spectrometer function Spectrometer_Callback(hObject, eventdata, handles) % hObject handle to Spectrometer (see GCBO) % eventdata reserved - to be defined in a future version o

我有一个下面的GUI程序来运行Matlab2014b中的另一个GUI图形

% --- Executes on button press in Spectrometer
function Spectrometer_Callback(hObject, eventdata, handles)
% hObject    handle to Spectrometer (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
data = getappdata(gcbf, 'labdata');
% open Spectrometer only if it is not already open
if ~isfield(data,'hSpectrometer')
    data.hSpectrometer=SpectrometerGui('handle',num2str(gcbf,16));
elseif ~ishandle(str2double(data.hSpectrometer)) 
data.hSpectrometer=SpectrometerGui('handle',num2str(gcbf,16));
end
setappdata(gcbf, 'labdata', data); 
每次都会出现以下错误。你知道出错的原因是什么吗

 Undefined function 'real' for input arguments of type 'matlab.ui.Figure'.

 Error in num2str (line 132)
        raw = cellPrintf(f, real(x), false);

Error in horus>Spectrometer_Callback (line 997)
    data.hSpectrometer=SpectrometerGui('handle',num2str(gcbf,16));

Error in gui_mainfcn (line 95)
        feval(varargin{:});

Error in lab (line 46)
    gui_mainfcn(gui_State, varargin{:});

Error in   @(hObject,eventdata)lab('Spectrometer_Callback',hObject,eventdata,guidata(hObject))  



Error while evaluating UIControl Callback

您使用的是哪个版本的MATLAB,
gcbf
返回什么?您的代码假定它是一个数字,因此在回调中放置一个断点,并逐步遍历代码行以验证是否是这样。从R2014b开始,图形句柄现在是对象而不是数字指针,因此您尝试使用的方法将不起作用@Geoff R2014b在他问题的第一句话中。将新属性视为保留现有功能的变通方法。@excaza是正确的。阅读以更详细地理解。作为一种临时解决方法,Loren解释说:“可以使用
double
函数将对象句柄转换为数字句柄。然后可以使用
handle
函数将数字转换回对象句柄。我们不建议将此作为长期解决方案。”