在 MATLAB 中,要删除矩阵中具有 NaN 值的所有行,我编写了以下代码:
myMatrix( any(isnan(myMatrix), 2), :) = []
Where:
any(isnan(myMatrix), 2)
返回逻辑向量
我有办法在朱莉娅做到这一点吗?
我似乎找不到在朱莉娅中做到这一点的方法。因此,我被迫编写丑陋的循环。
您可以使用广播来实现此目的:
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
or
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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)