【问题标题】:Matlab - sort cell array of objects by propertyMatlab - 按属性对对象的单元格数组进行排序
【发布时间】:2013-05-13 04:47:57
【问题描述】:

假设我有一个名为 Foo 的类,具有一个名为 DateTime 的 datenum 属性。如果我有一个 Foo 对象的元胞数组集合,我将如何根据每个对象的 DateTime 属性对其进行排序?

我已经看到有关重载排序方法和使用对象数组的参考,但是由于动态调整大小,我使用的是元胞数组,并且这些指令无法执行。有人有什么建议吗?干杯

【问题讨论】:

    标签: matlab cell-array


    【解决方案1】:

    最简单的方法是将时间值提取到向量中,对其进行排序,然后使用新顺序对原始数组进行排序。

    %# extract DateTime from the cell array fooCell
    dateTime = cellfun(@(x)x.DateTime, fooCell);
    
    [~,sortIdx] = sort(dateTime);
    
    %# reorder fooCell
    fooCell = fooCell(sortIdx);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 2011-09-06
      • 2012-02-20
      • 2010-11-02
      相关资源
      最近更新 更多