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

matlab却说这个运算符无效,是matlab用不了三目运算符了吗
x = 10;
y = (x > 5) ? 1 : 0;

关注引自免费微信小程序:皆我百晓生
在MATLAB中,确实有一个与三目运算符类似的语法,但它被称为条件点操作符(.())。您可能是在尝试使用类似于其他编程语言(如C、Java或JavaScript)中的三目运算符,但在MATLAB中,应该使用条件点操作符。
对于您的例子,正确的MATLAB语法应该是这样的:
x = 10;
y = x > 5 ? 1 : 0;
或者使用条件点操作符:
x = 10;
y = x > 5 .* 1 + ~x > 5 .* 0;
这里,x > 5 是一个布尔表达式,返回的是逻辑值(true 或 false),然后我们将其转换为数字(1 或 0)来进行计算。.* 和 + 这里分别代表元素级别的乘法和加法。
但是,推荐使用三目运算符版本,因为它更直观易读,并且MATLAB在内部也会将上述代码转换为类似的形式。如果您遇到错误提示说三目运算符无效,那可能是MATLAB版本过低不支持此特性,或者有其他原因导致的错误。请确保您正在使用的MATLAB版本支持这一特性(从 MATLAB R2016b 开始支持三目运算符)。