6
$\begingroup$

I'm running a sum, the elements of which are calculated by calling functions that I wrote. The only issue is, I've implemented this pretty stupid solution where I have 4 or 5 (nested!) if statements to handle cases where mathematica returns Indeterminate when it should be returning "0". What I'm essentially looking for is some kind of "If" statement that returns either 0 if Mathematica returns Indeterminate, and evaluates to something I have implemented already otherwise.

Any ideas? I've tried using combinations of the If/ Check functions, without too much luck.

Summary: I'm trying to write an If statement that checks for Indeterminate values, and returns one of two values. Any ideas?

$\endgroup$
2
  • 1
    $\begingroup$ Indeterminate is a special head. When you use If, you need to use === or SameQ instead of == or Equal to test if something is Indeterminate. All of this is in the documentation for Indeterminate. $\endgroup$
    – rm -rf
    Sep 23, 2012 at 4:43
  • 1
    $\begingroup$ Btw, welcome to Mathematica.SE! Could you try to invent a more memorable user name? All those userxxxxxs are no fun. $\endgroup$ Sep 23, 2012 at 7:19

2 Answers 2

8
$\begingroup$

Perhaps you just need a replace operation?

0 / {3, 2, 1, 0}
{0, 0, 0, Indeterminate}
% /. Indeterminate -> 0
{0, 0, 0, 0}
$\endgroup$
7
$\begingroup$

If has a 4-argument version in which the fourth argument is returned in cases where the condition yield Indeterminate.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.