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
给定一个整数值,因此它创建所需的随机索引。仅对于 vanilla IDL,我经常结合使用randomu
andsort
函数来获得相同的效果:
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