Create an array of empty durations
74 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Christian Breinholt
el 21 de Nov. de 2017
Comentada: Karol Ondrejkovic
el 17 de Jun. de 2022
Is there a way to create an array of durations similar to the way I can create an array of strings, zeroes etc. i.e.
str = strings(size, 0)
i tried something like
dur = durations(size, 0)
but that does not work.
0 comentarios
Respuesta aceptada
Walter Roberson
el 21 de Nov. de 2017
Editada: Walter Roberson
el 21 de Nov. de 2017
duration(nan(NumberOfEntries,3))
If you want a 2D array of durations then you would probably need to reshape() the above.
Alternately you could use
NaT(numrows, numcols) - NaT(1)
to get a numrows x numcols duration array.
3 comentarios
Raphaël Nussbaumer
el 21 de Abr. de 2021
Look like the second method is not working anymore with R2020b at least...
For instance
tmp = NaT(1,2)
tmp(1)=duration(0,0,1)
returns:
Error using datetime/parenAssign (line 66)
Right hand side of an assignment must be a datetime array or text representing dates and times.
Stephen23
el 21 de Abr. de 2021
Editada: Stephen23
el 21 de Abr. de 2021
tmp is a datetime array. The output of duration is a duration array.
What do you expect to occur when you allocate a duration to a datetime array? What date is "five minutes" ?
"Look like the second method is not working anymore with R2020b at least... "
It works when I try it:
X = NaT(2,3)-NaT(1)
Más respuestas (2)
Jan
el 21 de Nov. de 2017
I asssume that https://www.mathworks.com/help/matlab/ref/nat.html: "Not-a-Time" does not help directly. What about:
duration(NaN(size));
1 comentario
Karol Ondrejkovic
el 17 de Jun. de 2022
For me duration(strings(size)) works well.
Example:
duration(strings([2,3]))
Steven Lord
el 21 de Abr. de 2021
Another way to create an empty array of duration objects is to use the empty function for the class.
d = duration.empty(5, 0)
2 comentarios
Raphaël Nussbaumer
el 21 de Abr. de 2021
Nice one! Much better. It would be nice to be able to do:
duration.empty(size(X))
with X another matrix od any size.
Thanks anyway!
Steven Lord
el 21 de Abr. de 2021
As long as X is empty you can.
X = zeros(1, 2, 3, 4, 0);
D = duration.empty(size(X));
size(D)
An empty array in MATLAB must have the size in at least one dimension equal to 0 (as per the documentation for the isempty function) so something like this wouldn't work as the error message clearly states.
X = 1:10;
D = duration.empty(size(X))
Ver también
Categorías
Más información sobre Logical en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!