我正在查找一个数组中大于某个数字的最小值。我发现了这个讨论,但我不太理解。虽然我没有分析给定示例中传递给MINLOC的参数,但它看起来好像不能完成我想要的所有功能。(也可以使用循环来实现,但可能不太方便。)
您可能需要使用 MINVAL 函数。如果您的数组是这样的,array = (/ 21, 52, 831, 46, 125, 68, 7, 8, 549, 10 /) 你想找到大于65的最小值, variable = minval(array, mask=(array > 65)) 这显然会给出68。
看起来你需要的是MINVAL。 你只需要像这样做: min_above_cutoff = MINVAL(a, MASK=(a > cutoff)) 可选参数MASK应为与 a 相同大小的逻辑数组。它告诉MINVAL在搜索最小值时要考虑 a 中的哪些元素。请查看此处的文档:MINVAL 如果您想获得最小值的索引而不是值本身,则可以使用MINLOC。 在这种情况下,代码将如下所示:index = MINLOC(a, MASK=(a > cutoff)) 这里可以找到文档:MINLOC。
minloc
返回的是变量的位置,而不是该位置上的值(后者是 OP 所需的)。minval
才是 OP 寻找的内容,请参考我的帖子。 - Kyle Kanosminloc
示例。这可能对读者有用:请注意问题标题(故意)略微宽泛的范围。 - user649198