In most OO languages, where variables may point to objects, they may also have a null value, which is highly convenient.

In Matlab, I have a function which parses a command, and then returns a cell array, or false (which is equal to zero — which is another common pattern) if it fails:

function re = parse(s)
    ...
    if (invalid)
        re = false;
        return;
    end
end

The problem is that when I check the result, it gives an error:

re = parse(s);
if (false == re)
Undefined function 'eq' for input arguments of type 'cell'.

I've written a function to check it without an error: strcmp('logical', class(re)) && false == re, but that seems to be really slow for use in hot areas of the code, and also inconvenient if I have to add this function to every M file I'm writing.

Using NaN is even worse, because besides throwing that error, it also isn't equal to itself.

What's a better alternative for use with this pattern?

Edit
Report