当前位置:  开发笔记 > 编程语言 > 正文

通过独立绘制的随机数乘以数组的某些成员

如何解决《通过独立绘制的随机数乘以数组的某些成员》经验,为你挑选了1个好方法。

假设我有一个像这样的一维数组:

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)但它给出了一个错误.



1> DSM..:

您可以明确地按元素进行乘法运算:

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   

推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有