朱莉娅有ind2sub()
的矢量化方法吗?
以下是澄清和激发我的问题的例子:
A = rand(3,5)
(vals, inds) = findmax(A, 1)
现在我有线性索引inds
的向量,我想将其转换为下标,或者更确切地说,转换为对应于最大值的行索引。
像
这样的东西ind2sub(A, inds)
或
map(ind2sub, A, inds)
没有做好这份工作......
反馈:我想带开发。团队对此的关注。
IMO,这是一个提供锤子但不提供钉子的例子,比喻说话。也就是说,如果为用户提供了矢量化findmax
,那么还应该有矢量化的ind2sub
,它可以很好地与它一起使用。虽然我同意矢量化ind2sub
可能很棘手。
答案 0 :(得分: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)