comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » averaging over same index
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Switch to threaded view of this topic Create a new topic Submit Reply
averaging over same index [message #45293] Tue, 23 August 2005 09:22
andi.walther is currently offline  andi.walther
Messages: 1
Registered: August 2005
Junior Member
Hello,

I have an array V(alues) and an array S(ubscripts of a target array)
and I want to
extract the mean of all values with the same index in order to put them
into the new array.

As a simple example:
V = [ 3, 7, 99, 5, 2 , 10]
S = [ 1, 3, 3, 2 , 0 ,1]

new vector should be --> new = [ 2 , 6.5 , 5, 53 ]

slow way would be: for n = 0 , max(S)-1 do new[n]=mean(v[where(S eq
n)])

a bit faster without WHERE in the loop:

VSorted = v[sort(S)]
SSorted = S[sort(S)]
uu = uniq(iSorted)
for n = 0 , n_elements(uu)-1 do new[iSorted[uu[n]]] =
mean(vSorted[n:(n-1)>0])

But is there a way to do what I want without resorting to
a loop? In my real-world problem I have vectors with 500000 elements
and the number of the occurence of indices
are quite irragular and can exceed 30 times.

Thanks Andi
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: Cursor problems, MAC and PC
Next Topic: Re: averaging over same index

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Wed Oct 08 13:47:49 PDT 2025

Total time taken to generate the page: 0.00540 seconds