
Re: something wrong with my code??
Posted:
Jan 26, 2013 1:38 AM


On 25 Jan, 06:34, sylphid707 <sylphid...@hotmail.com> wrote: > First of all, this might give seasoned Mathematica users some serious eye sores cause I'm a newb at this xD > > f[x_] := (1^9) (Exp[38.629 x]  1); > data = Table[if[[f[x], {x, 5, 5, 0.01}] > 0.005, 0.005, f[x]]]; > ListPlot [data, DataRange > {5, 5}, Joined > True, > PlotRange > {0, 0.01}, PlotStyle > {Thickness[0.005]}] > > What I want to do this is do a plot of a sweep from 5 to 5 with 0.01 stepsize, and if the output value exceeds 0.005, the output value will just be 0.005. It will kind of look like a heavyside step function/unit step function. > Any help would be greatly appreciated xD.
This method uses ReplaceAll to avoid recomputing f[x]:
f[x_] := (1^9) (Exp[38.629 x]  1); data = Table[f[x], {x, 5, 5, 0.01}] /. x_ /; x > 0.005 :> 0.005; ListLinePlot[data, DataRange > {5, 5}, PlotRange > {0, 0.01}, PlotStyle > {Thickness[0.005]}]
And this method maps the if condition, also avoiding recomputing f[x]:
f[x_] := (1^9) (Exp[38.629 x]  1); data = If[# > 0.005, 0.005, #] & /@ Table[f[x], {x, 5, 5, 0.01}]; ListLinePlot[data, DataRange > {5, 5}, PlotRange > {0, 0.01}, PlotStyle > {Thickness[0.005]}]

