|
|
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]}]
|
|