سؤال

وحلقة التالية يستغرق حوالي 700 ثانية لتشغيل في اوكتاف و 22 ثانية لتشغيل في MATLAB عندما المصفوفة DJI ديها 21000 الصفوف. كيف يمكنني زيادة كفاءة هذا؟

for i=1:length(DJI)
DJI2(i,1)=datenum(char(DJI(i,2)),'yyyy-mm-dd');
end

هل كانت مفيدة؟

المحلول

هل تذكر أن preallocate DJI2؟

والأهم من ذلك، لا تحتاج حلقة على الإطلاق. datenum تعمل على المصفوفات. جرب هذا:

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

نصائح أخرى

وأنا محل حلقة بما يلي وحصلت على الأقل على أمر واحد من زيادة حجم في السرعة.

DJI2(:,1) = reshape(datenum(strvcat(DJI(:,2)(:)), length(DJI(:,2)),'yyyy-mm-dd'));
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top