[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: More fun



"J.D. Smith" <jdsmith@astro.cornell.edu> writes:



>Here's one I just came up against.  Suppose you want to rebin a vector
>to some smaller size, an integer factor smaller.  E.g. 100 elements to
>20 elements.  Now, rather than the average of those elements in each
>interval, etc., you want merely the average of the first and last member
>of that interval.  E.g., you want:

>[(v[0]+v[4])/2, (v[5]+v[9])/2, (v[10]+v[14])/2, ...]

>Rebin by itself can't work, I don't think.

>Takers?   

>JD

>P.S. No for loops please.  Bonus points if you don't build an explicit
>index list.

If the number of elements in the array is evenly divisible by the rebin factor
(such as 100 is evenly divisible by 5), then the following should work

	TEMP = REFORM(ARRAY, M, N_ELEMENTS(ARRAY)/M)
	RESULT = REFORM(TEMP(0,*) + TEMP(M-1,*)) / 2.

William Thompson