找回密码
 注册
关于网站域名变更的通知
查看: 494|回复: 2
打印 上一主题 下一主题

MATLAB 用GUI中UItable如何删除指定行呀?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-3-15 10:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
我在做matlab GUI时,想在uitable中实现以下功能:​$ d$ L$ q4 O" r& i' E1 \# _% Y( b( z: P
选中某行数据时,点击删除,将改行的数据删除。我的想法是当鼠标选中该行时,在uitable的CellSelectionCallback函数中利用​
  T! o+ i# I" ]- v5 d! w) Crow = eventdata.Indices(1)获得选中的数据所在的行,然后将表中该行数据删除,最后利用​
$ S( V0 d! k4 Pset(handles.uitable1,'Data',newdata)更新表中的数据显示。​
  X8 p2 w. r! T4 X6 B9 {- ~1 Z* e) a! ?  d 在实际操作中,当我删除了选中行以后,该行的数据的确被删除了,同时matlab也抛出了一个错误:​
: ?5 M( q; @! }$ ~& p 索引超出数组元素的数目(0)。​% e' w2 g7 b( \+ _9 @

3 x2 S( m! {0 c# \ 请问如何处理呀?
0 W8 p3 ~' z" g& c7 b& r. k, o6 V1 S, A

该用户从未签到

2#
发表于 2022-3-15 10:18 | 只看该作者
这个比较简单的,你在uitable 的数据里面加一列为  logic  数据,全部为0
8 i; T" c/ n; M" S然后在控件中设置该列为可操作,  然后显示的时候就可以显示为可勾选的列
! n, X9 ~4 ]9 L1 }5 H5 S) r3 V) a) m9 N2 a+ z- e
点击相关行的这一列  选择需要删除的行, 然后弄个删除按钮,   在按钮回调函数里面  获取 uitable 的data数据,对logic 列进行判断  为1 的进行删除  然后将处理好的数据重新指向  uitable 控件就行了

该用户从未签到

3#
发表于 2022-3-15 10:25 | 只看该作者
如果只每次删除一样没有删除多行的需求,  可以在 select  回调函数里面这样做就行了  个人建议别这样,容易误动    而且我觉得直接在回调里面删除一行有可能产生逻辑性错误,  因为 数据变更后  row = eventdata.Indices(1)  这部分会出现冲突,你的报错很可能是这个原因产生的,我还是建议上面的办法
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-10-28 17:41 , Processed in 0.156250 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表