2017-04-22 9 views
1

に複数のアレイに追加する:ジュリア:私は計算と並行して複数のアレイに勾配を追加する平行

F(a、b)はaとbの勾配を返す(これらは同じ配列で
a = zeros(1,3); b = zeros(1,5) 
a, b = @parallel (+) for i = 1:10 
    f(a,b) 
end 

サイズをそれぞれaおよびbとする)。タプルは不変なので、上記の方法はうまくいきませんが、aとbをより大きな行列に結合する必要がない方法を考えることはできません。何か案は?

+0

過負荷欲しい削減を行うために異なるバイナリ演算子。 –

+1

ベクトルのベクトルは要素ごとに追加されるので、 'f(a、b)'が '[1,2,3]、[1,2,3,4,5]]または各' i '、' + 'は正しく処理します。さらに、 'a、b = [[1,2,3]、[1,2,3,4,5]]'は 'a = [1,2,3]'などに正しく分解されます。 –

答えて

1

最もエレガントないが、これは動作します:

function ta(t1,t2) 
    t1[1].+t2[1], t1[2].+t2[2] 
end 

a, b = @parallel (ta) for i = 1:10 
    f(a,b) 
end 
関連する問題