2014-07-04 51 views
0

過濾器結構陣列I有一個大的結構陣列Matlab的 - 使用多個字符串

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

從中我需要過濾的數使用的陣列(在名稱字段中)的行。

我以前使用

result = Month([string here]) 

但我只注意到沒有做我想要的東西的話,那似乎以某種方式被過濾,但無論如何也不能期望我。

我有一個char數組中的上述結構數組和4個字符串(名稱)。我需要與相關日期從原來的數組,字節數,ISDIR和datenum四個匹配的名稱的輸出..

回答

4

這裏有一個小的代碼片段,將投入SelectedMonthstruct S作的name場匹配之一在單元陣列SelectedName條目:

SelectedName = {'n1', 'n2', 'n3', 'n4'}; % change to your values 
SelectedIndex = cellfun(@(x) any(strcmp(x, SelectedName)), {Month.name}); 
SelectedMonth = Month(SelectedIndex); 

從這裏開始,你可以提取wjhatever你從結構陣列SelectedMonth想要的信息。請注意,字符串比較區分大小寫,因此請小心名稱的大小寫。

+0

你是男人。完美解決方案 – AMcNall

+0

@AMcNall我很高興能幫上忙。 :-) –