按月和年份分类的Matlab小组日期

时间:2014-01-28 10:47:44

标签: matlab

我有一个日期列表,我试图按月将它们组合在一起(同一个月内发生的所有日期都在一起。

我目前正在使用:

groups;
for event=events        
    name = datestr(event.date,'Ayyyymm');

    if ~isfield(groups,name)
        groups.(name) = EventGroup; 
    end

    groups.(name).add(transaction);

end

但这有三个主要问题:

  1. 我无法遍历群组的字段
  2. 无法对字段名称进行排序,因此日期按顺序排列
  3. 看起来相当hacky
  4. 有没有更好的方法来执行这种分组,以便让我遍历所有组?

    N.B。 EventGroup是一个对象,它实际上是多个Event对象的包装器,每个event.date =每个事件的datestr()输出。

1 个答案:

答案 0 :(得分:1)

至1)

  1. 您可以使用fieldnames获取姓名。你可以循环使用它。
  2. 您也可以使用structfun
  3. 至2)

    1. 您可以在添加活动之前进行排序
    2. 构建组后,按排序顺序添加字段
    3. 你可以让小组成为一个自我排序的对象
    4. 至3)

      工作代码总是很好的代码 - 所以不用担心;)