Matlab - 使用多个字符串过滤Struct数组

时间:2014-07-04 12:31:37

标签: arrays matlab struct

我有一个大型结构数组

Month = 
1x10131 struct array with fields:
name
date
bytes
isdir
datenum

我需要使用数组(在名称字段中)过滤多个行。

我以前用过

result = Month([string here])

但我只是注意到它根本没有做我想要的东西,它似乎在某种程度上过滤了,但不是我想要的。

我有上面的struct数组,以及char数组中的4个字符串(name)。我需要输出四个匹配的名称,以及原始数组中的相关日期,字节,isdir和datenum。

1 个答案:

答案 0 :(得分:4)

这是一个小代码段,它将SelectedMonth structname字段与{x = 1}}中的一个条目匹配:

SelectedName

从这里开始,您可以从struct array SelectedName = {'n1', 'n2', 'n3', 'n4'}; % change to your values SelectedIndex = cellfun(@(x) any(strcmp(x, SelectedName)), {Month.name}); SelectedMonth = Month(SelectedIndex); 中提取所需的任何信息。请注意,字符串比较区分大小写,因此请注意名称的大小写。