假设我有一个像这样的一维数组:
julia> myarray = ones(6) 6-element Array{Float64,1}: 1.0 1.0 1.0 1.0 1.0 1.0
我做了一个掩码,它将选择一些元素,这个例子中的第一个和第二个元素:
julia> mymask = [true; true; false; false; false; false;] 6-element Array{Bool,1}: true true false false false false
现在我想只将第一个和第二个元素乘以从同一个分布中提取的随机数,并将结果保存在旧数组上.但是这会将它们乘以相同的值:
julia> myarray[mymask] = myarray[mymask] * rand(Normal(20,5)) julia> myarray 6-element Array{Float64,1}: 16.5642 16.5642 1.0 1.0 1.0 1.0
我的下一个想法是尝试,myarray[mymask] = myarray[mymask] * rand(Normal(20,5),2)
但它给出了一个错误.
您可以明确地按元素进行乘法运算:
julia> myarray[mymask] .*= rand(Normal(20,5), size(myarray[mymask])); julia> myarray 6-element Array{Float64,1}: 24.1747 12.6375 1.0 1.0 1.0 1.0