Julia 似乎有很多类似 Matlab 的功能。我想使用谓词从数组中进行选择。在 Matlab 中,我可以这样做:
>> a = 2:7 ;
>> a > 4
ans =
0 0 0 1 1 1
>> a(a>4)
ans =
5 6 7
我在 Julia 中找到了一种看起来很笨拙的方法来完成其中的一部分:
julia> a = 2:7
2:7
julia> [int(x > 3) for x in a]
6-element Array{Any,1}:
0
0
1
1
1
1
(使用维基百科所说的 list comprehension )。我还没有弄清楚如何在 Julia 中应用这样的集合来选择,但可能会叫错树。如何从 Julia 的数组中进行谓词选择?
最佳答案
如果使用点 .
,则可以使用非常类似于 Matlab 的语法。对于 elementwise比较:
julia> a = 2:7
2:7
julia> a .> 4
6-element BitArray{1}:
false
false
false
true
true
true
julia> a[a .> 4]
3-element Array{Int32,1}:
5
6
7
或者,您可以调用
filter
如果您想要更实用的谓词方法:julia> filter(x -> x > 4, a)
3-element Array{Int32,1}:
5
6
7
关于arrays - 如何从 Julia 匹配谓词中的数组中选择元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27884508/