2020-07-25 MATLAB App Designer——表格的logical選擇
1.實現(xiàn)目的:
(1)選擇含列“T/F”的單元格
1)選擇含列“T/F”的單元格設(shè)置為真,若所在列“時程”的同行單元格為空則選中為真,若所在列“時程”的同行單元格為真則選中為真;
2)選擇含列“T/F”的單元格設(shè)置為空,若所在列“時程”的同行單元格為空則選中為空,若所在列“時程”的同行單元格為真則選中為真;
(2)選擇含列“時程”的單元格
1)選擇含列“時程”的單元格設(shè)置為真,所在列“T/F”的同行單元格值不變;
2)選擇含列“時程”的單元格設(shè)置為空,所在列“T/F”的同行單元格值為空;
2.效果圖

3.回調(diào)函數(shù)
1.??? function?[sourceData]=ifun_TableDataValueChangedFcn(app,BridgeNamesCacluateSyms,sourceData)??
2.??? IDUnSameCell?=?~eq(cell2mat(sourceData(:,[1,5:end])),...??
3.??? ????cell2mat(BridgeNamesCacluateSyms(:,[1,5:end])));??
4.??? if?max(max(IDUnSameCell))==1?%?存在更新的內(nèi)容??
5.??? ????if?max(max(IDUnSameCell(:,1))==1)==1??%?T/F列?選中??
6.??? ????????RowIDUnSameCell=IDUnSameCell(:,1)==1;??%?獲取更改行??
7.??? ????????if?max(cell2mat(sourceData(RowIDUnSameCell,5:end)))~=1??%?操作后工作簿列均為空??
8.??? ????????????sourceData(RowIDUnSameCell,5:end)={1};??
9.??? ????????end??
10.?? ????else?%?工作簿列??
11.?? ????????RowIDUnSameCell=(max(IDUnSameCell(:,2:end),[],2)==1);??%?獲取更改行??
12.?? ????????if?max(cell2mat(sourceData(RowIDUnSameCell,5:end)))~=1??%?操作后工作簿列均為空??
13.?? ????????????sourceData(RowIDUnSameCell,1)={0};??
14.?? ????????end??
15.?? ????end??
16.?? end??
17.?? end??