Alors que je suis sûr qu'il y a une réponse, et cette question est de très bas niveau (mais c'est toujours les choses faciles qui vous trébuchent), mon principal question est d'essayer de formuler la question.Réduire la taille d'un tableau en faisant la moyenne des points dans le tableau (IDL)
Dire que j'ai les tableaux suivants:
time=[0,1,2,3,4,5,6,7,8,9,10,11] ;in seconds
data=[0,1,2,3,4,5,6,7,8,9,10,11]
Le tableau « temps » est dans les bacs de « 1s », mais je voudrais le tableau comme dans les bacs de « 2s » où les données alors la moyenne:
time=[0,2,4,6,8,10] ;in seconds
data=[0.5,2.5,4.5,6.5,8.5,10.5]
Y at-il (et je suis sûr qu'il y a) une fonction IDL pour implémenter cela dans IDL? mon tableau de données réelles est:
DATA DOUBLE = Array[15286473]
donc je préfère utiliser un existant, efficace, solution que de créer inutilement la mienne.
Cheers, Paul
NB: Je peux changer le tableau de temps à ce que je veux en interpolant les données (INTERPOL)
IDL> x=[0,1,2,3,4,5,6,7,8,9,10]
IDL> x_new=interpol(x,(n_elements(x)/2)+1.)
IDL> print, x_new
0.00000 2.00000 4.00000 6.00000 8.00000 10.0000
Le problème est seulement avec le tableau de données
Je trouve interpol est très bien pour le tableau de temps - comme je ai juste besoin de l'heure à chaque 2ème point: IDL> x = [0,1,2,3,4,5,6,7,8, 9,10] IDL> x_new = interpol (x, (n_éléments (x)/2) +1.) IDL> print, x_new 0,00000 2,00000 4,00000 6,00000 8,00000 10.0000 mais ne voyait pas comment cela fonctionnerait pour les données qui vont être la moyenne. Je vais vérifier rebin! J'ai fini par faire du code semblable au tien mais c'est toujours agréable de connaître la routine en IDL pour le futur. –
@PaulWright s'il vous plaît marquer cela comme la réponse acceptée si elle vous a aidé :) – VBB