Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 如何在字符数组中找到2次之间的小时差异?_Matlab_Date_Time - Fatal编程技术网

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

我在MATLAB中的字符数组中存储了2次

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