Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
当 DJI 矩阵有 21000 行时,以下循环在 octave 中运行大约需要 700 秒,在 matlab 中运行大约需要 22 秒。我怎样才能提高这个效率?
对于 i=1:长度(DJI) DJI2(i,1)=datenum(char(DJI(i,2)),'yyyy-mm-dd'); 结尾
你记得预分配 DJI2 吗?
更重要的是,您根本不需要循环。 datenum对数组进行操作。试试这个:
datenum
DJI2=datenum(char(DJI(:,2)),'yyyy-mm-dd');
我用以下代码替换了循环,速度至少提高了一个数量级。
DJI2(:,1) = reshape(datenum(strvcat(DJI(:,2)(:)), length(DJI(:,2)),'yyyy-mm-dd'));