Changeset 226 for trunk/SRC/ToBeReviewed/STATISTICS/c_timecorrelate.pro
- Timestamp:
- 03/16/07 10:22:26 (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SRC/ToBeReviewed/STATISTICS/c_timecorrelate.pro
r163 r226 1 1 ;+ 2 2 ; @file_comments 3 ; 3 ; 4 4 ; 5 5 ; @categories … … 65 65 ; This function computes the "time cross correlation" Pxy(L) or 66 66 ; the "time cross covariance" between 2 arrays (this is some 67 ; kind of c_correlate but for multidimens tionalsarrays) as a67 ; kind of c_correlate but for multidimensional arrays) as a 68 68 ; function of the lag (L). 69 69 ; … … 85 85 ; 86 86 ; @keyword COVARIANCE 87 ; If set to a non-zero value, the sample cross 87 ; If set to a non-zero value, the sample cross 88 88 ; covariance is computed. 89 89 ; … … 93 93 ; 94 94 ; @examples 95 ; 95 ; 96 96 ; Define two n-element sample populations. 97 97 ; x = [3.73, 3.67, 3.77, 3.83, 4.67, 5.87, 6.70, 6.97, 6.40, 5.57] … … 108 108 ; - 01/03/2000 Sebastien Masson (smasson\@lodyc.jussieu.fr) 109 109 ; Based on the C_CORRELATE procedure of IDL 110 ; - August 2003 Sebastien Masson 110 ; - August 2003 Sebastien Masson 111 111 ; update according to the update made in C_CORRELATE by 112 112 ; W. Biagiotti and available in IDL 5.5 … … 122 122 FUNCTION c_timecorrelate, X, Y, Lag, Covariance = Covariance, Double = Double 123 123 124 ;Compute the sample cross correlation or cross covariance of 124 ;Compute the sample cross correlation or cross covariance of 125 125 ;(Xt, Xt+l) and (Yt, Yt+l) as a function of the lag (l). 126 126 … … 138 138 if nt lt 2 then $ 139 139 MESSAGE, "Time dimension of X and Y arrays must contain 2 or more elements." 140 140 141 141 ;If the DOUBLE keyword is not set then the internal precision and 142 142 ;result are identical to the type of input. … … 168 168 if KEYWORD_SET(Covariance) eq 0 then begin ;Compute Cross Crossation. 169 169 for k = 0, nLag-1 do begin 170 if Lag[k] ge 0 then BEGIN 170 if Lag[k] ge 0 then BEGIN 171 171 case NDim of 172 172 1: Cross[k] = TimeCross_Cov(Xd, Yd, Lag[k], nT, Ndim, Double = Double) 173 173 2: Cross[*, k] = TimeCross_Cov(Xd, Yd, Lag[k], nT, Ndim, Double = Double) 174 174 3: Cross[*, *, k] = TimeCross_Cov(Xd, Yd, Lag[k], nT, Ndim, Double = Double) 175 4: Cross[*, *, *, k] = TimeCross_Cov(Xd, Yd, Lag[k], nT, Ndim, Double = Double) 175 4: Cross[*, *, *, k] = TimeCross_Cov(Xd, Yd, Lag[k], nT, Ndim, Double = Double) 176 176 endcase 177 ENDIF else BEGIN 177 ENDIF else BEGIN 178 178 case NDim of 179 179 1: Cross[k] = TimeCross_Cov(Yd, Xd, ABS(Lag[k]), nT, Ndim, Double = Double) … … 182 182 4: Cross[*, *, *, k] = TimeCross_Cov(Yd, Xd, ABS(Lag[k]), nT, Ndim, Double = Double) 183 183 endcase 184 ENDELSE 184 ENDELSE 185 185 ENDFOR 186 186 div = sqrt(TimeCross_Cov(Xd, Xd, 0L, nT, Ndim, Double = Double, /zero2nan) * $ … … 196 196 4: Cross[*, *, *, k] = TimeCross_Cov(Xd, Yd, Lag[k], nT, Ndim, Double = Double) / nT 197 197 ENDCASE 198 ENDIF else BEGIN 198 ENDIF else BEGIN 199 199 case NDim of 200 200 1: Cross[k] = TimeCross_Cov(yd, xd, ABS(Lag[k]), nT, Ndim, Double = Double) / nT … … 203 203 4: Cross[*, *, *, k] = TimeCross_Cov(yd, xd, ABS(Lag[k]), nT, Ndim, Double = Double) / nT 204 204 ENDCASE 205 ENDELSE 205 ENDELSE 206 206 endfor 207 207 endelse … … 210 210 211 211 END 212 212
Note: See TracChangeset
for help on using the changeset viewer.