簡體   English   中英

查找最接近最大值的數組條目的20%

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM