Julia的最低位置

squ*_*bar 10 julia

Julia是否有内置命令来查找向量最小值的索引?例如,R有一个which.min命令(which.max当然还有一个命令).

显然,我自己可以写下面的内容,但不必这样做会很好.

function whichmin( x::Vector )
  i = 1
  min_x=minimum(x)
  while( x[i] > min_x ) 
    i+=1 
  end
  return i
end
Run Code Online (Sandbox Code Playgroud)

如果以前曾经问过这个问题,我会道歉,但我找不到它.谢谢!

小智 9

我相信indmax(itr)做你想要的.从julia 文档:

indmax(itr)→整数

返回集合中最大元素的索引.

这是一个使用它的例子:

julia> x = [8, -4, 3.5]
julia> indmax(x)
1
Run Code Online (Sandbox Code Playgroud)


Dav*_*ers 9

还有findmax,它返回最大值和位置.


ede*_*rag 8

由于0.7-α,indminindmax已被弃用.使用argminargmax替代.

对于矢量,它只返回线性索引

julia> x = rand(1:9, 4)
4-element Array{Int64,1}:
 9
 5
 8
 5

julia> argmin(x)
2

julia> argmax(x)
1
Run Code Online (Sandbox Code Playgroud)

如果同时查找索引和值,请使用findminfindmax.

对于多维数组,所有这些函数都返回CartesianIndex.