gpt4 book ai didi

arrays - 如何在 Julia 中查找数组中多个元素的位置

转载 作者:行者123 更新时间:2023-12-03 23:34:47 24 4
gpt4 key购买 nike

这是我在 Julia 中的代码。我想在数组 a 中查找数组 b 的元素的位置。

a = [2,4,1,3]
b = [1,4]
c=[]
for i in 1:length(b)
push!(c, findfirst(isequal(b[i]), a));
end
println(c)

结果是 [3, 2]。这是正确的。但我相信应该有一个更朱利安(有效)的方法。我试过了

julia> findall(x -> x == b, a)
0-element Array{Int64,1}

这是错误的。那么

julia> findall(x -> x == .b, a)
ERROR: syntax: invalid identifier name "."

julia> findall(x -> x .== b, a)
ERROR: TypeError: non-boolean (BitArray{1}) used in boolean context

下面的结果是错误的!

julia> findall(x -> x in b, a)
2-element Array{Int64,1}:
2
3

我认为它将“b”视为一个集合,并忽略了“b”中的元素序列。我想要正确的序列[3,2]。谁能帮我?谢谢。

最佳答案

您可以使用 indexin :

julia> a = [2,4,1,3]; b = [1,4];

julia> indexin(b, a)
2-element Array{Union{Nothing, Int64},1}:
3
2

但是,不要像第一个示例中那样害怕 for-循环,它们非常易读,并且通常与 indexin 等内置方法一样有效(如果不是更高的话) .

关于arrays - 如何在 Julia 中查找数组中多个元素的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61115308/

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