任何和所有空的应该给出相同的答案.然而,在这里,他们给出了一个不同的答案,所有和空的都是真的.任何人都可以解释matlabs的这种行为(在版本2010a-> 2012b上测试).
>>任何([])
ans =
Run Code Online (Sandbox Code Playgroud)0
但
>>所有([])
ans =
Run Code Online (Sandbox Code Playgroud)1
此行为已明确记录:
来自http://www.mathworks.co.uk/help/matlab/ref/any.html:
如果
A为空,则any(A)返回logical0(false).
来自http://www.mathworks.co.uk/help/matlab/ref/all.html:
如果
A为空,则all(A)返回logical1(true).
我认为这种行为all有点违反直觉.在猜测中,我想说的是对于以下等价来保持对称性:
~all(A) == any(~A)
Run Code Online (Sandbox Code Playgroud)