Matlab :: 更改序列号的日、月、年

Matlab :: Change Day, Month Year of serial date number

我想在matlab中更改日期序列号的日月年

例如:7.367985930307407e+05

给我 2017 年 4 月 13 日 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 和 now docu 但我仍然无法弄清楚:(

您可以使用 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);

在您的函数 sysTime 中,输出设置为 now,它为您提供系统返回的当前时间。请尝试以下操作:

function t = sysTime

coder.extrinsic('now'); 
t=0;

t=datenum(2017,1,1) + rem(now,1);

end

Matlab 日期数字是双精度类型的数字,表示自参考日期以来的天数。因此,小数点前的数字表示日期,小数点后的数字表示时间。

使用 datenum 函数,您可以获得所需日期的日期编号,并添加系统时间的小数部分以获得您想要的。在长 运行 中,最好在 matlab 块中参数化您的参考日期。