MATLAB Table Datetime循环索引

问题描述

我正试图将自己的excel电子表格导入到MATLAB中(已经完成了此操作),然后使用for循环索引来创建包含指定日期的数据数组。

Example of my desired output

因此,理想情况下,我想知道如何遍历多年的数据,并创建日期与那天中表元素相对应的变量。正如我所说,我拥有多年的数据价值,这就是为什么我想要一个可以“自动化”我的流程的解决方案的原因。

Data Gathered From the Internet Into Excel

MATLAB table created from Excel Sheet

解决方法

欢迎来到stackoverflow!请注意,如果您提供一些代码-至少创建一些示例数据,会更容易。

无论如何,您可以轻松地遍历日期,并且如果将日期缩放到许多条目,效率也不会出现问题:

Tm = [  datetime('now') + duration(1,0)%add 1 hour
        datetime('now')
        datetime('yesterday')
        datetime('tomorrow')];

    
% convert to date
Dt = yyyymmdd(Tm);
% you may want to sort it
% [val,idx] = sort(Dt);

% get unique dates
Dt_uq = unique(Dt);

% create a cell of storage
DataAtDate = cell(length(Dt_uq),1);

% loop over unique dates
for i = 1:length(Dt_uq)
    Dt1 = Dt_uq(i);
    % get all of the same type
    lg = Dt == Dt1;
    % index matrix/cell to do something
    disp(Dt(lg,:))
    % do something with the data or matrix or table... e.g. store it in a cell
    DataAtDate{i} = Dt(lg,:);
end