我刚刚发现any('')
返回逻辑0的声明,而声明all('')
返回逻辑1。为什么任何('')返回逻辑0,而所有('')返回逻辑1?
如果函数any
并不认为空字符串(“”)为非零,函数all
也应该这样做,但是从结果,功能all
似乎认为空字符串(“”)为非零。
顺便说一句,类似的事情也发生在那里any(NaN)
返回逻辑0,而all(NaN)
返回逻辑1.
它是一个MATLAB的bug?
这里是我使用的MATLAB的版本信息。
MATLAB版本:9.1.0.441655(R2016b)
MATLAB许可证编号:DEMO
也许将它添加到列表中http://stackoverflow.com/questions/1710299/corner-cases-unexpected-and-unusual-matlab?rq=1 – Thilo
这不是一个错误。任何(X)意味着你可以找到X的元素是真的;对于没有元素,你不能。 all(X)表示你找不到X的元素是false;对于没有元素,你不能。比较∀,∃,并查看https:// stackoverflow。com/questions/2195289/why-does-iqueryable-all-return-true-on-an-empty-collection,https://stackoverflow.com/questions/30223079/why-does-stream-allmatch-return-true- for-an-empty-stream,https://stackoverflow.com/questions/19601802/how-does-all-in-python-work-on-empty-lists,https://stackoverflow.com/questions/16662727/为什么此结果全返回真上一个空数组。 – Ryan