Mathematica : Pulling inputs from a function; methodology question.

  • Context: Mathematica 
  • Thread starter Thread starter Hepth
  • Start date Start date
  • Tags Tags
    Function Mathematica
Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
3 replies · 2K views
Science Advisor
Gold Member
Messages
458
Reaction score
40
I have a heaviside function:

Code:
HeavisideTheta[a,b,c,d,e,...]

where the letters correspond to functions, and the number of functions is arbitrary.

I want to make a replacement so that
Code:
HeavisideTheta[a_]:> If[a>0,1,0]
HeavisideTheta[a_,b_]:>If[a>0,1,0] If[b>0,1,0]
or something similar.
I wish to take the inputs to the heaviside function, and create an "If" statement out of them.

So if I have a function that contains this HeavisideTheta, I can do a replacement as:

Code:
F[x,y]/.{HeavisideTheta[a__]:> Product[If[a[[i]]>0,1,0],{i,1,Length[a]}]
(though that obviously won't work)Any suggestions?
 
Last edited:
Physics news on Phys.org
I solved it, you use the sequence inside of a bracket to make it an array:

Code:
HeavisideTheta[a, b, c] /. {HeavisideTheta[a__] :> Product[If[{a}[[i]] > 0, 1, 0], {i, 1, Length[{a}]}]}
gives
Code:
If[a > 0, 1, 0] If[b > 0, 1, 0] If[c > 0, 1, 0]