倔强青铜铜 2024-05-20 21:05 采纳率: 76.5%
浏览 659

matlab用不了三目运算符了吗


x = 10;
y = (x > 5) ? 1 : 0;

img


matlab却说这个运算符无效,是matlab用不了三目运算符了吗

  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-05-20 21:05
    关注

    引自免费微信小程序:皆我百晓生

    在MATLAB中,确实有一个与三目运算符类似的语法,但它被称为条件点操作符(.())。您可能是在尝试使用类似于其他编程语言(如C、Java或JavaScript)中的三目运算符,但在MATLAB中,应该使用条件点操作符。

    对于您的例子,正确的MATLAB语法应该是这样的:

    x = 10;
    y = x > 5 ? 1 : 0;
    

    或者使用条件点操作符:

    x = 10;
    y = x > 5 .* 1 + ~x > 5 .* 0;
    

    这里,x > 5 是一个布尔表达式,返回的是逻辑值(truefalse),然后我们将其转换为数字(10)来进行计算。.*+ 这里分别代表元素级别的乘法和加法。

    但是,推荐使用三目运算符版本,因为它更直观易读,并且MATLAB在内部也会将上述代码转换为类似的形式。如果您遇到错误提示说三目运算符无效,那可能是MATLAB版本过低不支持此特性,或者有其他原因导致的错误。请确保您正在使用的MATLAB版本支持这一特性(从 MATLAB R2016b 开始支持三目运算符)。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月20日