sizeの密な列行列y
と size(m,1)
の疎な行列x
があります(m,n)
。と のすべての列を
使用して、要素ごとの乗算を実行したいと考えています。
結果のスパース行列のサイズは のままです。
メモリにロードされたときのスパース行列は、約 10GB です。メモリ効率の良い方法で目標を達成するのに役立ちますか
?y
x
(m,n)
x
spfun
その背後にあるロジックを理解するのに苦労しています。
ありがとうございました。
sizeの密な列行列y
と size(m,1)
の疎な行列x
があります(m,n)
。と のすべての列を
使用して、要素ごとの乗算を実行したいと考えています。
結果のスパース行列のサイズは のままです。
メモリにロードされたときのスパース行列は、約 10GB です。メモリ効率の良い方法で目標を達成するのに役立ちますか
?y
x
(m,n)
x
spfun
その背後にあるロジックを理解するのに苦労しています。
ありがとうございました。
bsxfunを試しましたか?
out = bsxfun( @times, x, y );
spfun
のゼロ以外の各要素を操作する要素ごとの操作により適していますx
。行列ベクトル要素ごとの操作には正確には適合しません。
ただし、この線に沿って何かをしたい場合は、次のことを試してください。
[ii jj xij] = find(x); %// extract non-zeros of x and their locations
out = sparse( ii, jj, xij.*y(ii), size(x,1), size(x,2) );
詳細については、を参照doc find
してください。