/ / Symbolic Math Toolbox: diviser par zéro les erreurs en évaluant NaN - matlab, symbolic-math

Symbolic Math Toolbox frappant la division par zéro erreur quand il évaluait NaN - matlab, symbolic-math

Je viens de mettre à jour Matlab 2014a pour finir. J'ai des tonnes de scripts qui utilisent la boîte à outils Symbolic Math qui fonctionnait normalement, mais je vois maintenant l’erreur suivante:

Error using mupadmex
Error in MuPAD command: Division by zero. [_power]
Evaluating: symobj::trysubs

Je ne peux pas "poster mon code actuel ici, mais voici un exemple simplifié:

syms f x y
f = x/y
results = double(subs(f, {"x","y"}, {1:10,-4:5}))

Dans mon script actuel, je passe deux grilles 23x23de valeurs à une fonction compliquée et je ne sais pas à l’avance laquelle de ces valeurs entraînera une division par zéro. Tout ce que je peux trouver sur Google me dit simplement de ne pas tenter une évaluation qui aboutira à une division par zéro. utile! J'avais l'habitude d'obtenir "inf" (ou "NaN" - je ne me souviens pas très bien) de ceux pour qui il n'a pas pu évaluer que je pouvais facilement filtrer lorsque je ferais les prochaines étapes sur ces données.

Est-ce que quelqu'un sait comment forcer le retour de Matlab 2014a?à ce comportement plutôt que de jeter l'erreur? Ou suis-je condamné à utiliser une version antérieure de Matlab pour toujours ou à subir la peine considérable de changer d’approche pour éviter la division par zéro?

Réponses:

2 pour la réponse № 1

Vous pouvez définir une division ayant le comportement souhaité, cette fonction de division renvoie inf pour une division par zéro:

mydiv=@(x,y)x/(dirac(y)+y)+dirac(y)
f = mydiv(x,y)
results = double(subs(f, {"x","y"}, {1:10,-4:5}))