我想使用曲线拟合工具箱来模拟我的日,其中包括两个向量,时间和测量。这是我的数据文件的屏幕截图(我将仅使用时间和DOWN)。
如何在工具箱中将时间向量作为我的x向量?它是当前的日期时间类型向量,当我选择我的变量时,我在列表中找不到它,使用的格式是什么?
答案 0 :(得分:1)
这是我的excel样本(我减少了观察量,但这不会影响最终结果):
DATE TIME DOWN
--------- ---------- -----
1/27/2018 8:00:03 PM 5,375
1/27/2018 8:00:06 PM 5,375
1/27/2018 8:00:10 PM 5,375
1/27/2018 8:00:13 PM 5,375
1/27/2018 8:00:17 PM 5,375
1/27/2018 8:00:20 PM 4,855
1/27/2018 8:00:27 PM 4,855
1/27/2018 8:00:31 PM 4,855
1/27/2018 8:00:35 PM 4,855
1/27/2018 8:00:38 PM 4,855
我通常更喜欢将readtable函数和调整后的导入选项一起使用,如下所示:
opts = detectImportOptions('data.xlsx');
opts.VariableTypes = {'datetime' 'datetime' 'double'};
data = readtable('data.xlsx',opts);
然后将解析data
变量,如下所示:
DATE (datetime) TIME (datetime) DOWN (double)
---------------------- ---------------------- ----------------
'27-Jan-2018 00:00:00' '31-Dec-1899 20:00:03' 5,37500000000000
'27-Jan-2018 00:00:00' '31-Dec-1899 20:00:06' 5,37500000000000
'27-Jan-2018 00:00:00' '31-Dec-1899 20:00:10' 5,37500000000000
'27-Jan-2018 00:00:00' '31-Dec-1899 20:00:13' 5,37500000000000
'27-Jan-2018 00:00:00' '31-Dec-1899 20:00:17' 5,37500000000000
'27-Jan-2018 00:00:00' '31-Dec-1899 20:00:20' 4,85500000000000
'27-Jan-2018 00:00:00' '31-Dec-1899 20:00:27' 4,85500000000000
'27-Jan-2018 00:00:00' '31-Dec-1899 20:00:31' 4,85500000000000
'27-Jan-2018 00:00:00' '31-Dec-1899 20:00:35' 4,85500000000000
'27-Jan-2018 00:00:00' '31-Dec-1899 20:00:38' 4,85500000000000
如您所见,当未定义时间时,它被默认为00:00:00
;日期也是如此,它被默认为31-Dec-1899
。由于引用日期是静态的并且永远不会更改,因此我认为最好的做法是合并表格的前两列,以便生成一致的datenum
值,以用作X Data
({{ 1}}变量不能在曲线拟合工具箱中使用,必须将它们转换为串行格式):
datetime
[y,m,d] = ymd(data.DATE);
[h,mn,s] = hms(data.TIME);
x = datenum(y,m,d,h,mn,s)
x =
737087.833368056
737087.833402778
737087.833449074
737087.833483796
737087.833530093
737087.833564815
737087.833645833
737087.83369213
737087.833738426
737087.833773148
中用作Y Data
的值可以直接从cftool
列data
中提取:
DOWN