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

Home » Public Forums » archive » Re: The IDL way, summing variable sized slices of array.
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: The IDL way, summing variable sized slices of array. [message #79756 is a reply to message #79755] Wed, 04 April 2012 07:59 Go to previous messageGo to previous message
Russell[1] is currently offline  Russell[1]
Messages: 101
Registered: August 2011
Senior Member
On Apr 4, 4:00 am, d19997...@gmail.com wrote:
> Hi,
>
> I've recently been learning how to use REBIN/REFORM etc. to do the heavy lifting rather than loops, (saving me at least an order of magnitude in execution time in some of the code I'm working with). I have a situation now where I don't know if it's possible to completely remove loops so I was hoping someone more experienced could illuminate me.
>
> In essence the problem is that I have a 3D array which I want to reduce to a 2D array by summing over elements of the first dimension. This wouldn't be an issue apart from the fact that the range of elements that I wish to sum over varies depending on the value of the second dimension.
>
> In code what I have at the moment looks a bit like:
>
> d=DBLARR(nt,nl,ne) ;Array of data
> t=DBLARR(nt) ; Array of "axis" values
> b=DBLARR(nl,2) ;Array of summation limits
> p=DBLARR(nl,ne) ; Array of answer
>
> ;<<BIT OF CODE TO FILL THESE ARRAYS>>
>
> FOR i=0L,nl-1 DO BEGIN
>     tmp=TOTAL(d[b[i,0]:b[i,1],i,*],1)  ;Sum elements
>     p[i,*]=tmp/TOTAL(t[b[i,0]:b[i,1]]) ;Store sum divided by sum of axis (i.e. get average value over summation range)
> ENDFOR
> RETURN,p
>
> Any help will be appreciated,
>
> Note whilst nl is not necessarily large in the cases I'll be looking at, i'm still interesting in "the IDL way" for this as part of my learning!
>
> Thanks,
> David

Not, sure... This sounds like the rare case were loops are useful.
BTW, I'm guessing you have a loop to fill the arrays? If so, then why
not stick this part in that loop?

Russell
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Previous Topic: Resizing Raster Files
Next Topic: The IDL way, summing variable sized slices of array.

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

Current Time: Fri Oct 10 17:46:15 PDT 2025

Total time taken to generate the page: 0.23992 seconds