Matlab 如何在字符数组中找到2次之间的小时差异?
我在MATLAB中的字符数组中存储了2次Matlab 如何在字符数组中找到2次之间的小时差异?,matlab,date,time,Matlab,Date,Time,我在MATLAB中的字符数组中存储了2次 a = '11:00 PM' b = '07:30 AM' 我想找出两次之间的小时差,在这个例子中应该是8.5小时。有什么简单的方法可以做到这一点吗?我可以datenum两个数字,减去它们,datevec差值,从向量中提取小时和分钟,并将它们转换为小时,但这需要很多行。是否有更有效的方法执行此操作,或者是否有现有功能?在时间中添加日期 像 将字符串转换为datetime x=str2num(strrep(a,':','')) y=str2num(str
a = '11:00 PM'
b = '07:30 AM'
我想找出两次之间的小时差,在这个例子中应该是8.5小时。有什么简单的方法可以做到这一点吗?我可以datenum
两个数字,减去它们,datevec
差值,从向量中提取小时和分钟,并将它们转换为小时,但这需要很多行。是否有更有效的方法执行此操作,或者是否有现有功能?在时间中添加日期
像
将字符串转换为datetime
x=str2num(strrep(a,':',''))
y=str2num(strrep(b,':',''))
然后对两个日期之间的差异进行修正
e = etime(x,y)
这将为您提供两次之间的秒数您可以通过使用转换每个字符串,取差值,然后使用以下值转换结果来完成此操作:
numHours=hours(diff(datetime({a;b},'InputFormat','hh:mm a'));
numHours=numHours+24.*(numHours<0)
numHours=
8.5000
第二行说明了示例中的情况,其中第二次必须发生在第二天才能使时差为正,因此将24小时添加到(负)时差中
e = etime(x,y)
numHours = hours(diff(datetime({a; b}, 'InputFormat', 'hh:mm a')));
numHours = numHours + 24.*(numHours < 0)
numHours =
8.5000