Re: Array reference help please
- To: mathgroup at smc.vnet.net
- Subject: [mg73333] Re: Array reference help please
- From: "Ray Koopman" <koopman at sfu.ca>
- Date: Tue, 13 Feb 2007 06:51:37 -0500 (EST)
- References: <eqjiid$7te$1@smc.vnet.net>
On Feb 9, 8:43 pm, rob <r... at piovere.com> wrote:
> I've managed to get this code working but I'm stumped on a
> good way to refer to the entries in the data when plotting.
> The only thing I can get to work is to refer to the first of
> each pair as Part[data[[i]],1] and the second as
> Part[data[[i]],2].
>
> And more humiliating, the second one I have to spell out
> twice. I tried all kinds of substitutions but failed. I know
> you gurus here know how to make this code look better and
> run more quickly. Thanks for your time.
>
> =CE=B1=100;(* decay parameter*)
>
> (* first parameter is pulse amplitude, second is time of
> occurrence - later to follow Poisson *)
>
> data=Table[Random[],{40},{2}];
>
> li=Length[data];
>
> Plot[Sum[
> Part[data[[i]],1] UnitStep[t-Part[data[[i]],2]]
> Exp[-=CE=B1 (t-Part[data[[i]],2])], {i,li}
> ]
> ,{t,0,1}]
a = 100;
SetRandom[1]; data = Table[Random[],{40},{2}];
li = Length[data];
Timing@Plot[Sum[Part[data[[i]],1] UnitStep[t-Part[data[[i]],2]] *
Exp[-a (t-Part[data[[i]],2])], {i,li}], {t,0,1}]
{0.39 Second,-Graphics-}
Timing[{x,y} = Transpose@data;
Plot[x.(UnitStep@# Exp[-a #]&)[t-y], {t,0,1}]]
{0.17 Second,-Graphics-]}