[英]Find 20% of array entries that are closest maximum value
我試圖找到最接近最大值的20%的條目。 考慮這個程序
program max_find
implicit none
double precision, dimension(10) :: array
array = [4.0, 7.0, 6.0, 9.0, 3.0, 2.0, 10.0, 5.0, 1.0, 8.0]
print *, array == maxval(array)
end program
打印FFFFFFTFFF
。 現在,我想找到邏輯數組FFFTFFTFFF
(10個條目中的2個為真)。 我可以將其包裝成一個循環,計算array > threshold
的條目數array > threshold
然后降低閾值,直到得到ratio*size(array) < count(array > threshold)
(對於ratio = 0.2
),但是如何選擇閾值理智地? 有沒有更好的方法?
調用子例程對數組進行排序(Fortran代碼在公共域中執行此操作),然后使用排序后的數組選擇閾值。 您無需對整個數組進行排序,在不太可能的情況下,完全排序會花費太長時間,您可以使用公共領域ORDERPACK 2.0庫中的部分排序子程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.