我在MATLAB中存储了两次字符数组。
a = '11:00 PM'
b = '07:30 AM'
我想找到2次之间的小时差异,在这个例子中应该是8.5小时。有没有简短的方法呢?我可以datenum
两个数字,减去它们,datevec
差异,从向量中提取小时和分钟,并将它们转换为小时,但这需要很多行。是否有更有效的方法来执行此操作或是否存在现有功能?
答案 0 :(得分:1)
您可以通过使用datetime
转换每个字符串,获取差异,然后使用hours
转换结果来执行此操作:
numHours = hours(diff(datetime({a; b}, 'InputFormat', 'hh:mm a')));
numHours = numHours + 24.*(numHours < 0)
numHours =
8.5000
第二行说明了您的示例中的条件,其中第二次必须在第二天发生时间差为正,因此24小时添加到(负)差。
答案 1 :(得分:0)
为时间添加日期 喜欢
https://www.facebook.com/gabriela.carrazano
https://www.facebook.com/yassmeen.ezzerqti
...
将字符串转换为日期时间
a = '1/1/2000 11:00 PM'
b = '1/1/2000 07:30 AM'
然后罚款两个日期之间的差异
x=str2num(strrep(a,':',''))
y=str2num(strrep(b,':',''))
这将给出两次之间的秒数