我知道这很简单,我已经尝试过strmatch,ismember,cellfun变种,没有我想要的答案。 我有这样的数据,它们是变量中的日期" x" 28日 - 12月2014 29日 - 12月2014 30日 - 12月2014 31日 - 12月2014 01-JAN-2015 02-JAN-2015 03-JAN-2015 04-JAN-2015 05-JAN-2015 我需要知道的是哪些行号==' Jan&#39 ;?因此,分析" x"中的行的结果应该 结果= 五 6 7 8 9
答案 0 :(得分:1)
这可能是一种方法 -
%// Convert to cell array
x_cell = cellstr(x_cell)
%// Split each cell into cells based on the delimiter "-"
X_split = cellfun(@(v) strsplit(v,'-'),x_cell,'Uni',0)
%// Look for "Jan" in the second cell of each cell at the "first level"
idx = find(cellfun(@(v) strcmp(v{2},'Jan'),X_split))
答案 1 :(得分:1)
使用正则表达式的替代方法:
clear
clc
X = {'28-Dec-2014' ,'29-Dec-2014', '30-Dec-2014', '31-Dec-2014' ,...
'01-Jan-2015', '02-Jan-2015' ,'03-Jan-2015', '04-Jan-2015', '05-Jan-2015'}
%// Look for any element in X containing Jan
CheckCells = regexp(X,'Jan')
%// Find non-empty cells, resulting from the call to regexp.
Indices = find(~cellfun('isempty',CheckCells))
输出:
Indices =
5 6 7 8 9