我想在matlab中更改序列日期编号的日,月和年
例如:7.367985930307407e + 05
给了我13-Apr-2017 14:13:57。
我需要: 2017年1月1日 14:13:57
我从simulink模型中获取序列日期编号,其中是matlab emb。代码块:
function t = sysTime
coder.extrinsic('now');
t=0;
t = now
end
任何人都可以提供帮助?阅读matlab datenum和现在的文档,但我仍然无法弄明白:(
答案 0 :(得分:2)
您可以使用datetime
对象来更改日期的特定部分
d = 7.367985930307407e+05;
dt = datetime(datevec(d));
dt.Month = 1;
dt.Day = 1;
% 01-Jan-2017 14:13:57
% And if you need the serial date number back:
result = datenum(dt);
答案 1 :(得分:0)
在函数sysTime中,输出设置为now
,它为您提供系统返回的当前时间。请尝试以下方法:
function t = sysTime
coder.extrinsic('now');
t=0;
t=datenum(2017,1,1) + rem(now,1);
end
Matlab日期编号是double类型的数字,表示自参考日期以来的天数。因此,小数点前的数字为您提供日期,小数点后的小数字为您提供时间。
使用datenum
功能,您可以获得所需日期的日期编号,并添加系统时间的小数部分以获得所需内容。从长远来看,在matlab块中参数化参考日期可能会更好。