addtodate creates too many milliseconds
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
d_moan
el 3 de Ag. de 2016
Comentada: d_moan
el 28 de Ag. de 2016
I wanted to create a vector of all milliseconds in a day, so I wrote
0:addtodate(0,1,'millisecond'):(1-addtodate(0,1,'millisecond'));
which resulted in a vector with 86767016 elements, instead of the expected 24*60*60*1000 = 86400000 ones.
The same with seconds worked just fine.
I assume this is due to some roundoff error, and of course I could just write (0:86400000-1)/86400000, but I was wondering if this should be considered a bug.
Also was wondering what would be the better approach in the future when adding several milliseconds - I can think of three options:
addtodate(0,1,'millisecond') + addtodate(0,1,'millisecond');
2*addtodate(0,1,'millisecond');
2/86400000;
(The last one giving a different result than the first two)
0 comentarios
Respuesta aceptada
Azzi Abdelmalek
el 3 de Ag. de 2016
Use linspace
a=linspace(0,1-addtodate(0,1,'millisecond'),86400000);
2 comentarios
Steven Lord
el 3 de Ag. de 2016
Or colon:
msPerDay = milliseconds(days(1));
y = milliseconds(0:1:msPerDay-1);
Más respuestas (0)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!