I'm creating a uitable in Matlab Guide that generates file names automatically based off of several parameters that a user will enter. For each file name in the table, a run time and number of runs can be specified.
I'm trying to write a callback function for the uitable that will automatically update the run names when either the run time or number of runs is edited. This is the callback function I've written.
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);
I need to call the 'generateRuns' funtion in order to create the updated table information with the edited data. Then that updated information will be displayed in the table using the "set" function on the next line. However, I am getting the following error:
Undefined function or variable "handles".
How can I access handles within the callback function? The callback function is specified in the UI Controls for the table in another object callback function.
set(handles.uitable19,'CellEditCallback',@runTableCallback);
Any help would be much appreciated.
You have not passed handles
to your callback.
Try adjusting your set
call to this:
set(handles.uitable19,'CellEditCallback', {@runTableCallback, handles});
And your function definition to:
function runTableCallback(hObject, callbackdata, handles)