MATLAB App Designer:2020-10-14 uitable控件多列logical联动实现

背景

对于下面的工程,设定第一列“T/F”为总的logical列,实现的功能:当“Sheet1”列和“时程”列,同行单元格均为false,则同行“T/F”列为false ,其他不做更改

这样,确保我按行从上到下判断是否要参与计算时,首先勾选“T/F”列,再勾选或审核需要进行分析的单元格,若勾选“T/F”列错误,设定后续指定列不会变动
黑色单元格不参与logical判断

工程实例

核心代码

% PreTableData % 原有表格控件内容;  % sourceData = source.Data; % LockedColID % 被锁定的表格列,必须紧挨着且必须从第二列开始 IDUnSameCell = ~eq(cell2mat(sourceData(:,[1,LockedColNum+2:end])),...     cell2mat(PreTableData(:,[1,LockedColNum+2:end]))); if max(max(IDUnSameCell))==1 % 存在更新的内容     if max(max(IDUnSameCell(:,1))==1)==1  % T/F列 选中         RowIDUnSameCell=IDUnSameCell(:,1)==1;  % 获取更改行         if max(cell2mat(sourceData(RowIDUnSameCell,LockedColNum+2:end)))~=1  % 操作后工作簿列均为空                 sourceData(RowIDUnSameCell,LockedColNum+2:end)={1};         end     else % 工作簿列         RowIDUnSameCell=(max(IDUnSameCell(:,2:end),[],2)==1);  % 获取更改行         if max(cell2mat(sourceData(RowIDUnSameCell,LockedColNum+2:end)))~=1  % 操作后工作簿列均为空                 sourceData(RowIDUnSameCell,1)={0};         end     end end

测试

表格控件未更改前的结果如上图,按下面要就执行表格格logical的更改:

(1)第1行,“T/F”列设置为false (2)第2行,“时程”列设置为false (3)第3行,“时程”列设置为true (4)第6行,“Sheet1”列和“时程”列均为false (5)第7列,“时程”列为false

测试结果

黑色单元格不参与logical判断

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空