gpt4 book ai didi

julia - 在 Julia 中获取子数组的索引

转载 作者:行者123 更新时间:2023-12-01 09:36:25 33 4
gpt4 key购买 nike

我是 Julia 的新手,想知道获取子数组索引的最佳方法是什么,请考虑以下向量数组

vec = [[1, 2, 3], [4, 5, 6]]

我想获取元素[4, 5, 6]的索引,但是我不能使用getindex(),执行下面的代码:

getindex(vec, [1, 2, 3])

给出:

BoundsError: attempt to access 2-element Array{Array{Int64,1},1} at index [[1, 2, 3]]

所以我想知道是否有任何有效的内置方法可以做到这一点。当然,我可以将这个向量数组映射到另一个数字数组,并在新的数字数组中进行搜索,但这并不是我所期望的真正解决方案。

第二个问题是我如何更多地了解 Julia 中的搜索方法及其性能。我猜测搜索比例的理论速度类似于 \sqrt(N) 但是根据特定方法,实际代码时间可能会有很大差异。

最佳答案

根据函数名称判断,您可能会被误导:getindex 检索存储在索引 中的

如果你想在数组中找到某物的索引,你可以使用 find* 方法 findfirst, findall...

julia> vec=[[1,2,3],[4,5,6]]
2-element Array{Array{Int64,1},1}:
[1, 2, 3]
[4, 5, 6]

julia> i = findfirst(x->x==[4,5,6],vec)
2

julia> vec[i]
3-element Array{Int64,1}:
4
5
6

关于你的第二个问题:

最好了解一般的搜索/排序算法(例如 https://codeburst.io/algorithms-i-searching-and-sorting-algorithms-56497dbaef20?gi=3bdbf8cbaca0 ),因为性能更多地取决于所选算法而不是特定于语言的实现。例如。时间复杂度可能非常不同 (O(n), O(log(n),...)。

关于julia - 在 Julia 中获取子数组的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58245532/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com