掩码数组分配

我有一个 NxN 数组 A、一个 NxN 数组 B 和一个 NxN 掩码(位矩阵)M。现在我只想将 B 的值复制/分配给 A,仅用于 M 为真的索引。最好的方法是什么?

回答

您可以使用逻辑索引

julia> A = zeros(5,5); B = ones(5,5); M = rand(Bool, 5, 5)
5×5 Matrix{Bool}:
 1  0  1  1  0
 1  0  1  1  0
 1  0  1  1  1
 0  0  0  1  0
 0  0  0  0  1

julia> A[M] = B[M]; A
5×5 Matrix{Float64}:
 1.0  0.0  1.0  1.0  0.0
 1.0  0.0  1.0  1.0  0.0
 1.0  0.0  1.0  1.0  1.0
 0.0  0.0  0.0  1.0  0.0
 0.0  0.0  0.0  0.0  1.0

或者干脆写一个循环:

julia> for i in eachindex(A, B, M)
           if M[i]
               A[i] = B[i]
           end
       end


以上是掩码数组分配的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>