私はいくつかのMATLABコードを使用しています。 A、B、Cの3つのセクションがあります。AとCは変更できますが、Bは変更されません。私が何をしたか同じコードのMATLAB速度の差
は(単にスクリプトではなく、機能)別のの.mファイルにA、B、およびC別々でした。 Aは変数の集合を作成し、Bは論理を含み、Cは結果のプロットを含む。私はファイルをDと呼ぶことにします。私が行ったことは、A、B、Cの内容全体を線形にコピー/ペーストすることです。
私が実行した場合、Bは、その後、C、B内の反復は、非常にゆっくりと反復につき約15秒になります。 Dを実行すると(ちょうどA、B、Cが貼り付けられます)、繰り返し回数が約2秒になります。 MATLABは、正確に同じ順序でまったく同じコードを実行していることを考えると
、なぜ二人は、このような大幅に異なる実行時間を持っているでしょうか?
多分、MATLAB JITはすべてのコードを一度に見ることができるので、Dでコードを最適化することができます。 – Praetorian
Bをスクリプトの代わりに関数にするとどうなりますか? – k107
また、実行時間をどのように記録していますか? 'clear all; tic、A; B; C; toc'を' clear all; tic、D; toc'と比較してみてください。とにかく@Praetorianは説得力のある説明を与えました。 – Amro