朱莉娅的矢量化ind2sub

abe*_*ysh 2 julia

ind2sub()朱莉娅有矢量化的方法吗?

以下是澄清和激发我的问题的例子:

A = rand(3,5)
(vals, inds) = findmax(A, 1)
Run Code Online (Sandbox Code Playgroud)

现在我有线性索引的向量inds,我想将其转换为下标,或者更准确地说,转换为对应于最大值的行索引.

就像是

ind2sub(A, inds)
Run Code Online (Sandbox Code Playgroud)

要么

map(ind2sub, A, inds)
Run Code Online (Sandbox Code Playgroud)

不会做这个工作......

反馈:我想带开发.团队对此的关注.IMO,这是一个提供锤子但不提供钉子的例子,比喻说话.也就是说,如果向用户提供矢量化,findmax那么也应该进行矢量化ind2sub,以便与其一起使用.虽然我同意矢量化ind2sub可能很棘手.

Dav*_*ers 8

在Julia 0.5及以后,您使用广播进行矢量化操作:

julia v0.5> A = rand(3, 5);

julia v0.5> (vals, inds) = findmax(A, 1);

julia v0.5> ind2sub.([A], inds)
1×5 Array{Tuple{Int64,Int64},2}:
 (1,1)  (1,2)  (3,3)  (2,4)  (3,5)
Run Code Online (Sandbox Code Playgroud)

请参阅最近的博客文章:http: //julialang.org/blog/2017/01/moredots