使用Matlab从给定结构数组的所有字段中删除多行

时间:2014-05-29 11:16:30

标签: matlab structure

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

我不介意改变索引,因为其中一个字段是" Time"字段来索引其他人。

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

我知道通过浏览所有字段名称可以实现,但是由于字段和/或结构的名称不同,我们一直在寻找更快的方法。

谢谢。

1 个答案:

答案 0 :(得分:0)

从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)