Следующий цикл занимает около 700 секунд для запуска в октаве и 22 секунды для запуска в matlab, когда матрица DJI имеет 21000 строк. Как я могу увеличить эффективность этого?
for i=1:length(DJI) DJI2(i,1)=datenum(char(DJI(i,2)),'yyyy-mm-dd'); end
Я заменил цикл следующим и получил увеличение скорости как минимум на порядок.
DJI2(:,1) = reshape(datenum(strvcat(DJI(:,2)(:)), length(DJI(:,2)),'yyyy-mm-dd'));
Вы помните, чтобы заранее выделить DJI2?
Что еще более важно, вам не нужен цикл вообще. datenum работает с массивами. Попробуй это:
datenum
DJI2=datenum(char(DJI(:,2)),'yyyy-mm-dd');