Julia appears to have a lot of Matlab like features. I'd like to select from an array using a predicate. In Matlab I can do this like:
>> a = 2:7 ;
>> a > 4
ans =
0 0 0 1 1 1
>> a(a>4)
ans =
5 6 7
I found a kind of clunky seeming way to do part of this in 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
(Using what wikipedia calls list comprehension). I haven't figured out how to apply a set like this to select with in Julia, but may be barking up the wrong tree. How would one do a predicate selection from an array in Julia?
You can use a very Matlab-like syntax if you use a dot .
for elementwise comparison:
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
Alternatively, you can call filter
if you want a more functional predicate approach:
julia> filter(x -> x > 4, a)
3-element Array{Int32,1}:
5
6
7