假設我有一個一維數組,像這樣:乘以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-他們的論點)。它表明函數修改了一個或多個參數。 –