Iが1Dアレイのでように持っていると仮定する。乗算independenly描か乱数によるアレイの一部のメンバー
julia> mymask = [true; true; false; false; false; false;]
6-element Array{Bool,1}:
true
true
false
false
false
false
は今、私は同じ分布から引き出される乱数によってのみ第1および第2の要素を乗算し、古い配列上で、結果を保存したいです。しかし、これは同じ値によってそれらを乗算します:
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
これは実際には他のソリューションよりも高速なので、私はそれを選択しています。しかし、私は興味があります。このようなループのようなものはおそらく私が最終的に自分のデバイスに残したのだろう。私はそれが最速の方法ではないと思っていたでしょう。また、 "!"関数定義の意味ですか? –
感嘆符は単に[Julia style convention]です(http://docs.julialang.org/en/release-0.5/manual/style-guide/#append-to-names-of-functions-that-modify-彼らの議論)。関数がその引数の1つまたは複数を変更することを示します。 –