繁体   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