Create an array of empty durations
26 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Christian Breinholt
il 21 Nov 2017
Commentato: Karol Ondrejkovic
il 17 Giu 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 Commenti
Risposta accettata
Walter Roberson
il 21 Nov 2017
Modificato: Walter Roberson
il 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 Commenti
Raphaël Nussbaumer
il 21 Apr 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
il 21 Apr 2021
Modificato: Stephen23
il 21 Apr 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)
Più risposte (2)
Jan
il 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 Commento
Karol Ondrejkovic
il 17 Giu 2022
For me duration(strings(size)) works well.
Example:
duration(strings([2,3]))
Steven Lord
il 21 Apr 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 Commenti
Raphaël Nussbaumer
il 21 Apr 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
il 21 Apr 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))
Vedere anche
Categorie
Scopri di più su Data Type Identification in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!