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 块中参数化您的参考日期。
我想在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 块中参数化您的参考日期。