NaNで数値的な関係演算を実行すると、非NaNよりも10倍遅くなることがわかります。MATLAB R2013a(ver 8.1)MATLABでNaN関係が遅い
>> a = rand(10000);
>> b = NaN(size(a));
>> tic; a>0; toc
Elapsed time is 0.083838 seconds.
>> tic; b>0; toc
Elapsed time is 0.991742 seconds.
いくつかの実験は、すべてのNaNの配列が最長受け取り、すべての非のNaNが最速となるように、配列内のNaNのproporationとスケールを撮影した時刻を示しています。 Infsは非NaNほど速いです。
多数のNaNを持つ配列の比較を行っています。この速度をハックするために、配列のNaNをInfsで置き換えます(例:-Inf
、b> 0の場合)。これは役に立ちますが、交換自体は遅いです。確かにそれは、同じアレイ上でこのような比較をしているので、一回限りの交換が全体的に役立つからです。
だから私の質問は、誰も多くのNaNと比較するための良いアイデアを持っていますか?
Matlabのバージョンは?私にとっては勝利64でR2015b - 時間は同じです! – matlabgui
@matlabgui:本当に!ガー、私は2013年です。それを述べるべきです(Qを編集します)! – Justin
@matlabgui R2015bにはかなりの[実行エンジンのアップグレード](http://www.mathworks.com/help/matlab/release-notes.html#zmw57dd0e3251)が含まれていることは何も価値がありません。私はそれがベンチマーク[かなり最近](http://stackoverflow.com/questions/33761451/)で思い付きます。 – excaza