私はMatlab/OctaveとMachine learningにかなり関心がありますが、これまでのところ、加算とベクトル化を可能な限り反復するループを避けたいと思っています。私の腸は、私たちに教えてくれますがMatlab/Octaveの2つの合計計算のうち、ローベクトルで最適なものはどれですか?
sum(x)
x * ones(length(x),1)
:
のような行ベクトルを考える:x = [ 1,2,3,4,5]
次の2つの方法で合計を計算することができます第2のオプションは、より「ベクトル化」されていると感じます。
どれが最適で、その理由は?パフォーマンスとメモリ使用などの2つの間にトレードオフがありますか?はるかに優れているsum()
に内蔵された性能の観点から
:
良い点。私は明示的に計算の時点でベクトルを割り当てています。メモリが問題でない場合、それらを事前に割り当てて再利用すると、反復計算でyeild boostが発生する可能性があります。 – Ray
計算あなたの経過時間のバージョンコストの経過時間は何ですか? – Ray
@レイ私の更新をご覧ください。 – Shai