Vin*_*nod 1 indexing logical-operators julia
给定 Julia 中的一维数组,找到 a (= 4) 和 b(= 7) 之间的所有元素。
a = 4;b = 7;
x = collect(1:10)
x[isless.(x,a)]
Run Code Online (Sandbox Code Playgroud)
将找到数组中所有小于 a = 4 的元素。
如何在索引中组合两个逻辑运算。
x[isless.(x,a) && !isless.(x,b)]
Run Code Online (Sandbox Code Playgroud)
不成功。
如果您可以使用<运算符而不是isless(这很可能是这种情况,除非您使用NaN、missing或-0.0),那么您可以编写:
julia> x[a .< x .< b]
2-element Vector{Int64}:
5
6
Run Code Online (Sandbox Code Playgroud)
或者您可以使用filter:
julia> filter(v -> a < v < b, x)
2-element Vector{Int64}:
5
6
Run Code Online (Sandbox Code Playgroud)
这让我想到了我添加此评论的原因。您要求进行就地操作。filter!这对于索引来说是不可能的,但是如果您使用以下命令,则可以实现它Vector:
julia> filter!(v -> a < v < b, x)
2-element Vector{Int64}:
5
6
julia> x
2-element Vector{Int64}:
5
6
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
242 次 |
| 最近记录: |