randomdir.pro

来自「basic median filter simulation」· PRO 代码 · 共 57 行

PRO
57
字号
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;  NAME:;     RANDOMDIR; PURPOSE:;     GENERATE DIRICHLET-DISTRIBUTED RANDOM VARIABLES.;; AUTHOR : BRANDON C. KELLY, STEWARD OBS., APRIL 2006;; INPUTS :;;   SEED - THE SEED FOR THE RANDOM NUMBER GENERATOR, CAN BE UNDEFINED.;   ALPHA - THE SHAPE PARAMETERS FOR THE DIRICHLET DISTRIBUTION. THIS;           SHOULD BE A K-ELEMENT VECTOR.;; OPTIONAL INPUTS :;;   NRAND - THE NUMBER OF RANDOM NUMBERS TO DRAW;; CALLED ROUTINES :;;   RANDOMGAM;-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;function randomdir, seed, alpha, nrandif n_params() lt 2 then begin    print, 'Syntax- theta = randomdir( seed, alpha[, nrand] )'    return, 0endifif n_elements(alpha) lt 2 then begin    print, 'Alpha must have at least 2 elements.'    return, 0endifK = n_elements(alpha)bad = where(alpha le 0, nbad)if nbad ne 0 then begin    print, 'All elements of ALPHA must be greater than 0.'    return, 0endifif n_elements(nrand) eq 0 then nrand = 1gamma = dblarr(nrand, K)for j = 0, K - 1 do $  gamma[0,j] = randomgam(seed, alpha[j], 1.0, nrand)theta = gamma / transpose(total(gamma,2) ## replicate(1, K))return, thetaend

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?