3

次のループは、DJI マトリックスに 21000 行がある場合、オクターブで実行するのに約 700 秒、matlab で実行するのに 22 秒かかります。これの効率を上げるにはどうすればよいですか?

i=1 の場合: 長さ (DJI)
DJI2(i,1)=datenum(char(DJI(i,2)),'yyyy-mm-dd');
終わり

4

2 に答える 2

2

ループを次のように置き換えたところ、速度が少なくとも 1 桁向上しました。

DJI2(:,1) = reshape(datenum(strvcat(DJI(:,2)(:)), length(DJI(:,2)),'yyyy-mm-dd'));
于 2008-12-08T23:17:18.137 に答える
2

DJI2 を事前に割り当てたことを覚えていますか?

さらに重要なことは、ループがまったく必要ないことです。 datenum配列で動作します。これを試して:

DJI2=datenum(char(DJI(:,2)),'yyyy-mm-dd');

于 2008-12-08T19:53:57.750 に答える