Any idea why all([]) is true while any([]) is false

>> all([])
ans =
1
>> any([])
ans =
0

1 Comment

It's written into the documentation as such, but no explanation is given.

Sign in to comment.

 Accepted Answer

This post by Loren lead to some comments that address the issue, especially the one by Matt Fig.

More Answers (1)

I can't say I know definitively, but I expect that one reason is for consistency when taking the union of sets with the empty set. For example, one would want
all(union(true,[]))
to be true, and also
any(union(false,[]))
to be false. The definitions in your question make sense in that context.

1 Comment

I have just noticed the same with NaN! more confusing
>> all(nan)
ans =
1
>> any(nan)
ans =
0

Sign in to comment.

Categories

Find more on Random Number Generation in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!