scramble.pro假定輸入是一個整數陣列,所以它總是給一個整數數組作爲其輸出。你可以,但是,用它來生成指數的隨機排序和飼料這些回原來的陣列(如mgalloy已與mg_sample完成):
IDL> array = [2.3, 4.5, 5.7,8.9]
IDL> scr_array = array[scramble(n_elements(array))]
IDL> print, scr_array
8.90000 2.30000 5.70000 4.50000
這裏,scramble
被賦予一個整數值,所以它創建所需的隨機索引。對於香草IDL只,我經常使用組合randomu
和sort
函數來獲得同樣的效果:
IDL> array = [2.3, 4.5, 5.7,8.9]
IDL> indices = sort(randomu(seed, n_elements(array)))
IDL> scr_array = array[indices]
IDL> print, indices
3 2 0 1
IDL> print, scr_array
8.90000 5.70000 2.30000 4.50000
在這裏,我們使用randomu
生成具有相同數量的元素作爲array
一組隨機數,並且sort
給了我們將按順序放置隨機數組的指數。他們一起給你一個隨機的指數排序。當然,你也可以把它放在一條線上:
IDL> array = [2.3, 4.5, 5.7,8.9]
IDL> scr_array = array[sort(randomu(seed, n_elements(array)))]
IDL> print, scr_array
5.70000 2.30000 8.90000 4.50000
+1,但是在香草IDL中沒有辦法做到這一點嗎? Matlab和R有這種內置的功能。 – 2013-02-26 21:35:11
我不知道任何內置庫例程來做到這一點。 – mgalloy 2013-03-04 21:30:36