【发布时间】:2021-05-14 03:43:16
【问题描述】:
我有一个 matlab gui,它不再编译或运行,因为 gui 函数已更改。 我之前的代码是这样的
isUseDriftComp = contains(get(handles.menuUseDriftCompensation, 'checked'), 'on');
现在
handles.menuUseDriftCompensation.checked 是一个枚举
ans = OnOffSwitchState 枚举
开
使用包含检查字符串不起作用。
我应该如何检查on 和off?
这行得通,但读写起来很糟糕
handles.menuUseDriftCompensation.Checked == matlab.lang.OnOffSwitchState.on
【问题讨论】:
-
对我来说,有效的“可怕”版本实际上是最好的方法。它更具可读性,并且检查状态(枚举)的相等性比检查另一个字符串的字符串内容要快。如果您将枚举设为布尔值而不是字符串,您甚至可以加快速度。
-
枚举来自matlab核心语言,不可更改
-
您可以将检查包裹在anonymous function 中,并给它一个更友好的名称和语法。
标签: matlab user-interface