Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 为什么此表达式的计算结果为0?_Matlab_Logic_Boolean Logic - Fatal编程技术网

Matlab 为什么此表达式的计算结果为0?

Matlab 为什么此表达式的计算结果为0?,matlab,logic,boolean-logic,Matlab,Logic,Boolean Logic,为什么表达: -5 < -3 < -1 -5

为什么表达:

-5 < -3 < -1
-5<-3<-1
在MATLAB中计算为0?每个单独的语句的计算结果都是true,所以我不明白为什么它的计算结果是false


非常感谢。

因为它看起来真的像这样:

(-5 < -3) < -1
(-5<-3)<-1
-5<-3为真,也就是1

1<-1为假,也为0

最终答案:0。

那么你是在评估

-5 < -3 < -1
TRUE < -1
FALSE
-5<-3<-1
真<-1
错误的

哈哈。我正要删除我的回答,别说了。这个答案很好,因为您已经链接到了有关该行为的官方文档。投票率最高的答案是出于纯粹的逻辑,但是除了解释结果是如何产生的之外,您还提供了一个官方链接,说明这种行为记录在哪里。如果我是OP.Psh,我个人会接受这个答案,我不管怎样。除了布尔逻辑,我根本不知道MATLAB的内部结构?我很清楚。大多数语言在
-5<-3<-1
语句中都会出现语法错误,因为它们关心布尔值不能与整数比较,但在不太严格的语言中,布尔值TRUE与整数1完全相同(任何非零值的计算结果都为TRUE,但TRUE显式存储为1)。所以我立刻明白了发生了什么。帕伦斯夫妇也是一直存在的。即使是
5+3+2
实际上也是
(5+3)+2
,但我们不会把它们写下来。@Draco18s实际上,在Python中,执行
-5<-3<-1
相当于执行
-5<-3&-3<-1
,这将评估为
True
。我们不能假设所有编程语言的这种假定行为都是相同的。这就是为什么我更喜欢这个答案,因为它与官方文件有关。FWIW,我确实对你的答案投了赞成票,因为它很快就说到点子上了,但你不能从逻辑上假设你的答案对所有编程语言都是正确的。@DRACO18是正确的,但一些古老的著名语言甚至更糟糕。事实上,在C中,没有定义是先计算
-5<-3
还是
-3<-1
。。。我想是运气不好吧。我想说的是,对于具有相同优先级的运算符,在它们所属的位置使用parathesis是一种很好的做法。如果要将-3与其他值进行比较(如在不等式中),则需要将其分成两个比较。类似这样的
(-5<-3)和(-3<-1)