【问题标题】:Matlab check of checkbox is checked using OnOffSwitchState使用 OnOffSwitchState 检查复选框的 Matlab 检查
【发布时间】:2021-05-14 03:43:16
【问题描述】:

我有一个 matlab gui,它不再编译或运行,因为 gui 函数已更改。 我之前的代码是这样的

isUseDriftComp = contains(get(handles.menuUseDriftCompensation, 'checked'), 'on');

现在

handles.menuUseDriftCompensation.checked 是一个枚举

ans = OnOffSwitchState 枚举

使用包含检查字符串不起作用。 我应该如何检查onoff

这行得通,但读写起来很糟糕

handles.menuUseDriftCompensation.Checked == matlab.lang.OnOffSwitchState.on

【问题讨论】:

  • 对我来说,有效的“可怕”版本实际上是最好的方法。它更具可读性,并且检查状态(枚举)的相等性比检查另一个字符串的字符串内容要快。如果您将枚举设为布尔值而不是字符串,您甚至可以加快速度。
  • 枚举来自matlab核心语言,不可更改
  • 您可以将检查包裹在anonymous function 中,并给它一个更友好的名称和语法。

标签: matlab user-interface


【解决方案1】:

比这更简单。 MATLAB 枚举支持与文本的一些直接互操作性,因此您可以编写:

handles.menuUseDriftCompensation.Checked == "on"

MATLAB 自动尝试将文本值强制转换为左侧枚举的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-12
    • 2011-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    相关资源
    最近更新 更多