How do I make an array of elapsed times?
조회 수: 2 (최근 30일)
이전 댓글 표시
I have array, stopdates, that I need the number of seconds elapsed from t1 for each date. This is what I have been working with:
format shortg
str = 'April 18, 1995 12:00:00';
t1 = datevec(str,'mmmm dd, yyyy HH:MM:SS');
str2 = stopdate(1,runs);
t2 = datevec(str2,'mmmm dd, yyyy HH:MM:SS');
nt = etime(t2,t1);
댓글 수: 2
njj1
2018년 4월 25일
What is stopdate?
Here is an easy solution that does not require etime. If you get your t# into datenum instead of datevec, then you can just subtract and cumsum everything.
%given t is a vector of datenum
t = [0;cumsum(diff(t))];
답변 (3개)
dpb
2018년 4월 25일
str = 'April 18, 1995 12:00:00';
t1 = datetime(str,'inputformat','MMM dd, yyyy HH:mm:ss');
stoptime=datetime(stopdate,'inputformat','MMM dd, yyyy HH:mm:ss');
dt=stoptime-t1;
dtSecs=seconds(dt);
Read up on datetime and duration
댓글 수: 0
njj1
2018년 4월 25일
편집: njj1
2018년 4월 25일
OK, so this sounds like it's inside a for loop, in which case you could try something like this:
for runs=number_of_runs:-1:1
%I run this backwards to ensure that my vector t is pre-allocated
t(runs) = datenum(stopdate(runs,:),'mmmm dd, yyyy HH:MM:SS');
end
%after this for loop, we have a vector t where each entry is a datenum
t = [0;cumsum(diff(t))];
Hope this helps.
댓글 수: 1
njj1
2018년 4월 25일
Actually, you don't need to use the for loop if all the date strings in your vector stopdate are in the same format.
t = datenum(stopdate,'mmmm dd, yyyy HH:MM:SS');
t = [0;cumsum(diff(t))];
Peter Perkins
2019년 1월 23일
Unless you are using a pretty old version of MATLAB (< R2014b), use datetimes:
>> t1 = datetime('April 18, 1995 12:00:00','InputFormat','MMMM dd, yyyy HH:mm:ss')
t1 =
datetime
18-Apr-1995 12:00:00
>> t2 = datetime({'April 20, 1995 22:26:45' 'April 24, 1995 15:25:42' 'April 27, 1995 19:01:23'},'InputFormat','MMMM dd, yyyy HH:mm:ss')
t2 =
1×3 datetime array
20-Apr-1995 22:26:45 24-Apr-1995 15:25:42 27-Apr-1995 19:01:23
>> t2 - t1
ans =
1×3 duration array
58:26:45 147:25:42 223:01:23
>> between(t1,t2)
ans =
1×3 calendarDuration array
2d 10h 26m 45s 6d 3h 25m 42s 9d 7h 1m 23s
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Dates and Time에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!