【问题标题】:save UITABLE data in a array in matlab在matlab中将UITABLE数据保存在数组中
【发布时间】:2017-04-27 15:05:50
【问题描述】:

我在第 3 列中创建了一个带有下拉菜单的 UItable。我想在用户修改后保存修改后的表数据。请指导我如何做到这一点。 谢谢

参考我写的代码是:

f = figure;
s=1;
myData = {s 'q1' 'choose'; ...
      s+1 'q2' 'choose';};
t = uitable('Parent', f,...
        'Position', [100 100 260 260],...
        'ColumnName',{'SLNO.' 'Queries' 'select answer'},... 
        'ColumnFormat',({[] [] {'Yes' 'No'}}),... 
        'ColumnEditable', true,...
        'Data', myData);

【问题讨论】:

  • 什么时候你想保存它?在用户编辑/单击合适的按钮/在代码中的指定点上?另外,要保存在哪里?在以后可以重新加载的变量/图形中?
  • 我想在用户完成选择后立即保存数据。例如对于问题 1,用户选择是,对于问题 2,用户选择否。他的选择最好保存在一个数组中..

标签: matlab user-interface


【解决方案1】:

要对用户编辑执行操作,请使用uitable 对象的'CellEditCallBack' 属性。该属性可以包含函数或字符串的句柄。在后一种情况下,将在用户编辑单元格时评估字符串。所以,在t的定义中加入下面一行:

t = uitable('Parent', f,...
        'Position', [100 100 260 260],...
        'ColumnName',{'SLNO.' 'Queries' 'select answer'},... 
        'ColumnFormat',({[] [] {'Yes' 'No'}}),... 
        'ColumnEditable', true,...
        'Data', myData,...
        'CellEditCallBack','newData = get(gco,''Data'');'); % this is the new line

当用户编辑uitable 中的某个单元格时,这将更新工作区变量newData

如果您希望在编辑单元格时执行更复杂的操作,您可以定义一个脚本,例如myAction,并将'CellEditCallBack' 属性设置为'myAction'。或者定义一个函数,比如myFunction,并将'CellEditCallBack' 属性设置为@myFunction。在这种情况下,该函数被传递一个包含事件数据的CellEditData 对象;有关详细信息,请参阅上面的链接。

【讨论】:

  • 显示错误。它说 CellEditCallBack 函数不存在
  • 我正在使用 R2017a.. 可能这可能是 c.. 的原因。您能提出替代方案吗?
  • 我只是再次复制粘贴..它工作..对不起!!..:) 无论如何非常感谢:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-06
  • 1970-01-01
  • 2020-09-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多