假设我有一个一维数组,像这样:乘以independenly绘制随机数的阵列的一些成员
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)
但它给出了一个错误。
只有在版本0.6出现之前,速度优势才会到来吗?然后'。*'将会融合。 – DNF
这确实比其他解决方案更快,所以我选择它。不过,我很好奇。像这样的for循环可能是我最终做的事情留给自己的设备。我原以为这不是最快的方法。另外,“!”是什么在函数定义中是什么意思? –
感叹号仅仅是[Julia style convention](http://docs.julialang.org/zh/release-0.5/manual/style-guide/#append-to-names-of-functions-that-modify-他们的论点)。它表明函数修改了一个或多个参数。 –