2017-05-09 28 views
1

我有2次存储在MATLAB中的字符数组。如何在字符数组中找到两次之间的差异?

a = '11:00 PM' 
b = '07:30 AM' 

我想找到在2倍,这应该是在此实例中8.5小时小时之间的差。有没有简短的方法来做到这一点?我可以datenum两个数字,减去它们,datevec的差异,从矢量中提取小时和分钟,并将它们转换为小时,但这需要很多行。有没有更有效的方法来做到这一点,或者是否有现有的功能?

回答

1

您可通过以下方法使用datetime每根弦,采取差异,那么结果将与hours做到这一点:

numHours = hours(diff(datetime({a; b}, 'InputFormat', 'hh:mm a'))); 
numHours = numHours + 24.*(numHours < 0) 

numHours = 

    8.5000 

第二行占了你的榜样的条件,其中第二次有发生对第二天的时差要积极,所以24小时内加(负)差。

0

添加日期的时间 像

a = '1/1/2000 11:00 PM' 
b = '1/1/2000 07:30 AM' 

转换字符串为DateTime

x=str2num(strrep(a,':','')) 
y=str2num(strrep(b,':','')) 

再细2个日期

e = etime(x,y) 

之间的区别这会给你两次之间的秒数

相关问题