matlab - 在 Matlab 中将 datenum 转换为 datetime 的最快方法

标签 matlab date datetime

我在 Matlab 中将 datenum 转换为 datetime 时遇到问题。

给定dnum = [floor(now);地板(现在+1)];

我尝试了以下方法:

datenum(dnum)

但这并没有奏效。

我发现有效的方法是:

datetime(datestr(dnum)) % seems slow?
datetime(year(dnum), month(dnum), day(dnum)) % slower?

最快的方法是什么?有更好的方法吗?内置函数?

最佳答案

在尝试了一些建议之后,这是分割:

dnum = datenum(datetime(1900,1,1):datetime(2017,1,1))';

然后是结果(Matlab 2016b):

% Elapsed time is 1.287081 seconds.
tic
dtime = datetime(datestr(dnum)); % seems slow?
toc

% Elapsed time is 0.017474 seconds.
tic
dtime = datetime(year(dnum), month(dnum), day(dnum));
toc

% Elapsed time is 0.010327 seconds.
tic
dtime = datetime(datevec(dnum));
toc

% Elapsed time is 0.000949 seconds.
tic
dtime = datetime(dnum,'ConvertFrom','datenum');
toc

这是复制/粘贴的功能:

function dtime = datenum2datetime(dnum)
    dtime = datetime(dnum,'ConvertFrom','datenum');
end

关于matlab - 在 Matlab 中将 datenum 转换为 datetime 的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46685376/

相关文章:

c++ - 从 MATLAB 调用 c 函数?

matlab - 围绕具有相同值的垂直像素组绘制矩形

python - 将 UTC 时间转换为纪元

php - 更改日期格式,来自 postgresql 的 php echo 总是返回 "Date(1970, 01, 01)"

android - 如何将 createdAt 日期字段转换为 Parse.com 中的字符串?

objective-c - 用于在 Objective C 中处理重复规则的库?

matlab - 如何打印 Matlab 的 DURATION

arrays - MATLAB 是否提供了一种更优雅的方法来遍历 3D 数组以获得 3 维向量?

javascript 日期时间到字符串并返回日期时间?

javascript - getTimezoneOffset() 在夏令时转换期间稳定吗?