【问题标题】:Deleting multiple rows from all fields of a given structure array using Matlab使用Matlab从给定结构数组的所有字段中删除多行
【发布时间】:2014-05-29 21:04:46
【问题描述】:

我正在研究一个包含 12 个字段的结构,每个字段包含一个 1350x1 的双精度。 我想删除所有字段的所有行,给定关于其中一个字段的条件,并提出一个新结构,仍然是 12 个字段,但只有 1150 行。

我不介意更改索引,因为其中一个字段是用于索引其他字段的“时间”字段。

澄清一下,我的结构叫做sens,字段是sens(1).Time、sens(1).Temp、sens(1).Humidity等等。 我想在sens(1).Time中找到一个值,将其定义为阈值,并删除所有字段中小于该值的所有行。

我知道通过检查所有字段名称是可能的,但由于字段名称和/或结构的不同,我一直在寻找一种更快的方法。

谢谢。

【问题讨论】:

    标签: matlab structure


    【解决方案1】:

    检查 matlab 中的 structfun 函数,这应该可以解决您的问题。 你有一些例子可以帮助你实现你想要的,但总而言之,它应该看起来像这样:

    % A is your struct
    % cond is the indexes of the rows you want to keep
    A_clean= structfun(@(x) x(cond), A, 'UniformOutput', false)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-09
      • 2014-10-27
      • 2012-11-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多