Create an array of empty durations
26 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Christian Breinholt
le 21 Nov 2017
Commenté : Karol Ondrejkovic
le 17 Juin 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 commentaires
Réponse acceptée
Walter Roberson
le 21 Nov 2017
Modifié(e) : Walter Roberson
le 21 Nov 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 commentaires
Raphaël Nussbaumer
le 21 Avr 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
le 21 Avr 2021
Modifié(e) : Stephen23
le 21 Avr 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)
Plus de réponses (2)
Jan
le 21 Nov 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 commentaire
Karol Ondrejkovic
le 17 Juin 2022
For me duration(strings(size)) works well.
Example:
duration(strings([2,3]))
Steven Lord
le 21 Avr 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 commentaires
Raphaël Nussbaumer
le 21 Avr 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
le 21 Avr 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))
Voir également
Catégories
En savoir plus sur Data Type Identification dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!