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

Home » Public Forums » archive » Re: array problems
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: array problems [message #61295 is a reply to message #61294] Fri, 11 July 2008 12:20 Go to previous messageGo to previous message
jschwab@gmail.com is currently offline  jschwab@gmail.com
Messages: 30
Registered: December 2006
Member
On Jul 11, 2:36 pm, "David Sheerin" <davidshee...@btinternet.com>
wrote:
> Hi All
> I have a palindromic vector of floats, e.g. [a,b,c,b,a] , and I would like
> to expand it to include the mean between each value like [(0+a)/2, a,
> (a+b)/2, b, (b+c)/2, c, (c+b)/2, b, (b+a)/2, a, (a+0)/2]. Is there any
> elegant way of doing this without having to resort to clunky for loops?
>
> I also would like to repeat this action on the resulting vector.
>
> Thanks for any tips
>
> David

You can do this in a few lines with a combination of rebin and shift.

;; Take only the first section of the array
half = [a, b, c]

;; use rebin with the sample keyword to duplicate your values
;; this gives [a, a, b, b, c, c]
n = n_elements(half)
doubled = rebin(half, 2 * n, /sample)

;; now use shift to combine and average, and drop the last element
extended = ((doubled + shift(doubled, -1)) / 2.0)[0:2*n-2]

;; now you can use reverse() and array concatenation to do back
;; to the full palindromic array

Josiah
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: Where O Where Di My Pointer Go?
Next Topic: Re: Where O Where Di My Pointer Go?

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

Current Time: Tue Dec 02 21:48:49 PST 2025

Total time taken to generate the page: 0.00256 seconds