MATLAB 如何进行时间的运算
比如我想知道下面两个时间差应该这么做。'2018-08-0402:29:30''2018-08-0402:29:32'...
比如我想知道下面两个时间差应该这么做。
'2018-08-04 02:29:30'
'2018-08-04 02:29:32' 展开
'2018-08-04 02:29:30'
'2018-08-04 02:29:32' 展开
展开全部
这样计算
clc;clear
t1 ='2018-08-04 02:29:30';
t2 = '2018-08-04 02:29:32';
t1v = datevec(t1);
t2v = datevec(t2);
t1 = calyears(t1v(1))+calmonths(t1v(2)) + caldays(t1v(3)) + duration(t1v(4:6));
t2 = calyears(t2v(1))+calmonths(t2v(2)) + caldays(t2v(3)) + duration(t2v(4:6));
dt = t2-t1
答案
dt =
0h 0m 2s
追问
好像不行,出现了
未定义与 'double' 类型的输入参数相对应的函数 'calyears'。
另外,如果我想调用结果,是直接用dt吗?比如50/dt。
追答
我这里可以运行,可能是版本问题吧。现在matlab默认的都是double类型的变量,你那里面的函数库太老了。你可以试一试
clc;clear
t1 ='2018-08-04 02:29:30';
t2 = '2018-08-04 02:29:32';
t1v = datevec(t1);
t2v = datevec(t2);
t1v = int32(t1v);%不行就int8、int16、int64随便试一下,下同
t2v = int32(t2v);
t1 = calyears(t1v(1))+calmonths(t1v(2)) + caldays(t1v(3)) + duration(t1v(4:6));
t2 = calyears(t2v(1))+calmonths(t2v(2)) + caldays(t2v(3)) + duration(t2v(4:6));
dt = t2-t1
至于第二个问题,有意思
clc;clear
t1 ='2018-08-04 02:29:30';
t2 = '2018-08-04 02:29:32';
t1v = datevec(t1);
t2v = datevec(t2);
dt0 = etime(t2v,t1v)%这个是时间差单位是秒
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询