我剛剛發現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