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
如果之前有人问过,请道歉,但我找不到。谢谢!
答案 0 :(得分:9)
我相信indmax(itr)
会做你想要的。来自朱莉娅documentation:
indmax(itr)→整数
返回集合中最大元素的索引。
这是一个使用它的例子:
julia> x = [8, -4, 3.5]
julia> indmax(x)
1
答案 1 :(得分:9)
还有findmax,它返回最大值及其位置。
答案 2 :(得分:6)
由于0.7-alpha,indmin
和indmax
已过时。
改用argmin
和argmax
。
对于矢量,它只返回线性索引
julia> x = rand(1:9, 4)
4-element Array{Int64,1}:
9
5
8
5
julia> argmin(x)
2
julia> argmax(x)
1
如果同时查找索引和值,请使用findmin
和findmax
。
对于多维数组,所有这些函数都返回CartesianIndex。
答案 3 :(得分:1)
对于multidim数组,您必须在线性索引和多维索引之间切换:
x = rand(1:9, 2,3)
# 2×3 Array{Int64,2}:
# 5 1 9
# 3 3 8
indmin(x)
# 3
# => third element in the column-major ordered array (value=1)
ind2sub(size(x),indmin(x))
# (1, 2)
# => (row,col) indexes: what you are looking for.
- 莫里斯