Re: Problem with BinCounts
- To: mathgroup at smc.vnet.net
- Subject: [mg90927] Re: Problem with BinCounts
- From: Valeri Astanoff <astanoff at gmail.com>
- Date: Wed, 30 Jul 2008 03:51:39 -0400 (EDT)
- References: <g6mas3$i0d$1@smc.vnet.net>
On 29 juil, 07:46, Mark Teagarden <Mark.Teagar... at UTSA.EDU> wrote: > Hi, > > I'm trying to do an autocorrelation analysis on an artificially generated > neuronal spike train, but BinCounts is behaving strangely. > > I first generate a list of spike times for an oscillator with a mean > frequency of 1 Hz, plus some gaussian jitter: > > st = NestList[(1 + RandomReal[NormalDistribution[0, 0.1]] + # &), 0,100= 0]; > > Then I do the autocorrelation like this: > > BinCounts[st, {# - 2.00, # + 2.00, 0.01}] & /@ st; > > ac = Last[Accumulate[%]]/Length[%]; > > The output of BinCounts ought to be a list of length st, with each list > element having a fixed length of 400. And yet I get error messages lik= e so: > > Thread::tdlen: Objects of unequal length in > \ > {13,11,15,9,12,13,14,13,9,6,<<390>>}+{0,1,0,0,0,0,0,0,0,0,<<389>>} > \ > cannot be combined. >> > > And sure enough, if I run Dimensions/@ the output of the BinCounts line, = I > get one or two elements with a length of 399. This happens completely = at > random, and I don't understand why. It seems to me that BinCounts ough= t to > give me a fixed output length, regardless of what the results of the > operation actually were. These shorter elements do not occur near the > beginning or end, either, so it's not an edge effect. Furthermore, the > values of st corresponding to the shorter elements of ac don't have any > unusual properties like being whole numbers or anything. I will add th= at > sometimes the code works correctly, and it's not obvious why. > > Has anyone else encountered such behavior before? What did you do abou= t it? > Good day, All I can say is that if you rationalize 'st' and all parameters then it doesn't occur : st=NestList[(1+RandomReal[NormalDistribution[0,0.1]]+#&), 0,1000]//Rationalize[#,10^-6]&; BinCounts[st, {# - 2, # + 2, 1/100}] & /@ st; V.Astanoff
- Follow-Ups:
- Re: Re: Problem with BinCounts
- From: Darren Glosemeyer <darreng@wolfram.com>
- Re: Re: Problem with BinCounts