6

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?

Verbeia
  • 34,233
  • 9
  • 109
  • 224
Todd Ben
  • 61
  • 3
  • 1
    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. – rm -rf Sep 23 '12 at 04:43
  • 1
    Btw, welcome to Mathematica.SE! Could you try to invent a more memorable user name? All those userxxxxxs are no fun. – Sjoerd C. de Vries Sep 23 '12 at 07:19

2 Answers2

8

Perhaps you just need a replace operation?

0 / {3, 2, 1, 0}
{0, 0, 0, Indeterminate}
% /. Indeterminate -> 0
{0, 0, 0, 0}
Mr.Wizard
  • 271,378
  • 34
  • 587
  • 1,371
7

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

Sjoerd C. de Vries
  • 65,815
  • 14
  • 188
  • 323