如何使用R从MATLAB序列号中提取时间?

如何使用R从MATLAB序列号中提取时间?,r,matlab,R,Matlab,我有一些MATLAB序列号,我需要在R中使用,但我没有把它们转换成一个正常的日期 Matlab: datestr(733038.6) ans = 27-Dec-2006 14:24:00 你可以看到它给出了日期和时间 Now we try in R: Matlab2Rdate <- function(val) as.Date(val - 1, origin = '0000-01-01') > Matlab2Rdate(733038.6) [1] "

我有一些MATLAB序列号,我需要在R中使用,但我没有把它们转换成一个正常的日期

    Matlab:
   datestr(733038.6)
    ans =
    27-Dec-2006 14:24:00 
你可以看到它给出了日期和时间

Now we try in R:
Matlab2Rdate <- function(val) as.Date(val - 1, origin = '0000-01-01') 
> Matlab2Rdate(733038.6)
[1] "2006-12-27"
现在我们在R中尝试:
MATLAB2日期MATLAB2日期(733038.6)
[1] "2006-12-27"
它只给出日期,但我还需要时间?任何想法

诀窍是Matlab使用“10000年1月1日”,一个虚构的参考日期,来计算其日期编号。R中“POSIXct”类的时间来源为“1970-01-01 00:00.00 UTC”。您可以了解不同的系统如何处理日期

在转换之前,您需要考虑引用从一种格式到另一种格式的差异。手册中有这样一个例子。以下是我的输出:

> val<-733038.6
> as.POSIXct((val - 719529)*86400, origin = "1970-01-01", tz = "UTC")
[1] "2006-12-27 14:23:59 UTC"
>val as.POSIXct((val-719529)*86400,origin=“1970-01-01”,tz=“UTC”)
[1] “2006-12-27 14:23:59 UTC”
其中719529是Matlab的datenum中的“1970-01-01 00:00.00 UTC”,以及标准UTC日的秒数。

检查此链接