我在Matlab指南中创建了一个可以根据用户输入的几个参数自动生成文件名的方法。对于表中的每个文件名,可以指定运行时和运行次数。
我正在尝试为uitable编写一个回调函数,当编辑运行时或运行次数时,它会自动更新运行名。这是我写过的回调函数。
function runTableCallback(hObject,callbackdata)
numval = eval(callbackdata.EditData);
r = callbackdata.Indices(1);
c = callbackdata.Indices(2);
if c==2
handles.runnums(r,1)=numval;
hObject.Data{r,c} = numval;
elseif c==3
handles.runtimes(r,1)=numval;
hObject.Data{r,c} = numval;
end
[runlog,runnames,runnums,runtimes,rundesc]=generateRuns(hObject,handles);
handles.runlog=runlog;
handles.runnames=runnames;
handles.runnums=runnums;
handles.runtimes=runtimes;
handles.rundesc=rundesc;
set(handles.uitable19,'Data',[handles.runlog,handles.runnames,handles.runnums,handles.runtimes]);
guidata(hObject, handles);
我需要调用'generateRuns'函数来创建包含已编辑数据的更新表信息。然后,使用下一行的“设置”功能将更新的信息显示在表格中。但是,我收到以下错误:
未定义的函数或变量“handle”。
如何在回调函数中访问句柄?回调函数在另一个对象回调函数中的表的UI控件中指定。
set(handles.uitable19,'CellEditCallback',@runTableCallback);
非常感谢任何帮助。
答案 0 :(得分:3)
您尚未将handles
传递给回调。
尝试调整set
对此的调用:
set(handles.uitable19,'CellEditCallback', {@runTableCallback, handles});
你的函数定义为:
function runTableCallback(hObject, callbackdata, handles)