次のループは、DJI マトリックスに 21000 行がある場合、オクターブで実行するのに約 700 秒、matlab で実行するのに 22 秒かかります。これの効率を上げるにはどうすればよいですか?
i=1 の場合: 長さ (DJI) DJI2(i,1)=datenum(char(DJI(i,2)),'yyyy-mm-dd'); 終わり
ループを次のように置き換えたところ、速度が少なくとも 1 桁向上しました。
DJI2(:,1) = reshape(datenum(strvcat(DJI(:,2)(:)), length(DJI(:,2)),'yyyy-mm-dd'));
DJI2 を事前に割り当てたことを覚えていますか?
さらに重要なことは、ループがまったく必要ないことです。 datenum
配列で動作します。これを試して:
DJI2=datenum(char(DJI(:,2)),'yyyy-mm-dd');