访问 CellEditCallback 函数中的句柄结构

Access handles structure in CellEditCallback function

我正在 Matlab Guide 中创建一个 uitable,它会根据用户输入的几个参数自动生成文件名。对于 table 中的每个文件名,可以指定 运行 时间和 运行 的数量。

我正在尝试为 uitable 编写一个回调函数,它将在 运行 时间或 运行s 已编辑。这是我写的回调函数。

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' 函数以使用编辑后的数据创建更新的 table 信息。然后更新后的信息将在下一行使用 "set" 函数显示在 table 中。但是,我收到以下错误:

Undefined function or variable "handles".

如何在回调函数中访问句柄?回调函数在UI控件中指定为table在另一个对象回调函数中。

set(handles.uitable19,'CellEditCallback',@runTableCallback);

如有任何帮助,我们将不胜感激。

您还没有将 handles 传递给您的回调。

尝试将您的 set 调用调整为:

set(handles.uitable19,'CellEditCallback', {@runTableCallback, handles});

并将您的函数定义为:

function runTableCallback(hObject, callbackdata, handles)