Я хочу использовать набор инструментов подбора кривой для моделирования своего дня, который состоит из двух векторов: времени и измерения. Вот скриншот моего файла данных (я буду использовать только время и ВНИЗ). введите описание изображения здесь

Как мне передать вектор времени в качестве вектора x в наборе инструментов? В настоящее время это вектор типа datetime, и я не могу найти его в своем списке, когда выбираю свои переменные. Какой формат лучше использовать?

0
Isra 17 Фев 2018 в 09:35

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

Я обычно предпочитаю использовать функцию чтения вместе с настроенными параметрами импорта следующим образом:

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 (datetime переменные нельзя использовать в Curve Fitting Toolbox, вам необходимо преобразовать их в последовательный формат):

[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:

y = data.DOWN;
1
Tommaso Belluzzo 17 Фев 2018 в 15:48