matlab - ce qui est l'équivalent de la valeur null / Néant / nil / NULL etc.?

Dans la plupart des langages à objets, où les variables peuvent pointer vers des objets, ils peuvent aussi avoir une valeur null, ce qui est très pratique.

Dans Matlab, j'ai une fonction qui analyse une commande, puis renvoie une matrice de cellules, ou false (qui est égal à zéro, ce qui est un autre modèle commun) si elle échoue:

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

Le problème est que lorsque je vérifie le résultat, il donne une erreur:

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

J'ai écrit une fonction pour vérifier une erreur: strcmp('logical', class(re)) && false == re, mais qui semble être très lent pour une utilisation dans les zones chaudes du code, et aussi gênant si je dois ajouter cette fonction à chaque M fichier que je suis en train d'écrire.

À l'aide de NaN est encore pire, car en plus de jeter que de l'erreur, ce n'est pas égal à lui-même.

Ce qui est une meilleure alternative pour une utilisation avec ce modèle?

  • Pour répondre à une de vos points, idiomatiques matlab est d'utiliser isnan(A) pour vérifier nan, plutôt que de A==NaN (depuis que vous avez découvert, ce dernier ne fonctionne pas).
  • Ce serait une autre alternative, mais, malheureusement, par exemple isnan({}) renvoie une erreur.