有一个简短的脚本可以计算输入数据的直方图。 data , dmin , dmax ,bin是输入,并在调用脚本之前定义; h , x , xmean 是输出。
我检查了 histo.pro 在正确的位置。
调用脚本会导致错误(在idl85p中):
IDL> .r histo.pro
IDL> histo, data, dmin, dmax, bin, h, x, xmean
% HISTO: Incorrect number of arguments.
% Execution halted at: $MAIN$
我会对此有所帮助。谢谢
脚本:
PRO histo, data, dmin, dmax, bin, h, x, xmean
on_error, 2
; compute histogram
h = histogram(float(data), BINSIZE = float(bin), MIN = float(dmin), $
MAX = float(dmax), REVERSE_INDICES = r)
; compute center of each bin
range = float(dmax - dmin) & nbin = long(range/bin) + 1
x = findgen(nbin) * bin + dmin + bin/2.
; compute mean data value for each bin
n_el = n_elements(h) & xmean = fltarr(n_el)
for n = 0L, n_el - 1 do begin
lo = r[n] & up = r[n+1] - 1
if lo lt up then $
xmean[n] = mean(data[r[lo:up]]) else xmean[n] = x[n]
endfor
return
end