gpt4 book ai didi

indexing - Julia 中的逻辑索引

转载 作者:行者123 更新时间:2023-12-01 09:42:26 24 4
gpt4 key购买 nike

在 MATLAB 中,要删除矩阵中具有 NaN 值的所有行,我编写以下代码:

myMatrix( any(isnan(myMatrix), 2), :) = [] 

地点:

any(isnan(myMatrix), 2) 

返回一个逻辑向量

我有办法在 Julia 中做到这一点吗?

我似乎找不到在 Julia 中执行此操作的方法。因此,我被迫编写丑陋的循环。

最佳答案

您可以使用广播来实现这一点:

julia> x = rand([NaN; 1:10], 10, 4)
10×4 Array{Float64,2}:
4.0 9.0 2.0 6.0
3.0 10.0 2.0 2.0
3.0 1.0 3.0 6.0
7.0 8.0 5.0 10.0
5.0 10.0 10.0 NaN
4.0 3.0 7.0 5.0
1.0 8.0 9.0 4.0
6.0 NaN 3.0 5.0
9.0 NaN 7.0 1.0
9.0 4.0 6.0 10.0

julia> x[.!any.(isnan, eachrow(x)), :]
7×4 Array{Float64,2}:
4.0 9.0 2.0 6.0
3.0 10.0 2.0 2.0
3.0 1.0 3.0 6.0
7.0 8.0 5.0 10.0
4.0 3.0 7.0 5.0
1.0 8.0 9.0 4.0
9.0 4.0 6.0 10.0

julia> x[vec(.!any(isnan.(x), dims=2)), :]
7×4 Array{Float64,2}:
4.0 9.0 2.0 6.0
3.0 10.0 2.0 2.0
3.0 1.0 3.0 6.0
7.0 8.0 5.0 10.0
4.0 3.0 7.0 5.0
1.0 8.0 9.0 4.0
9.0 4.0 6.0 10.0

关于indexing - Julia 中的逻辑索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58189128/

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