我有一个名为myCellArray的单元格数组。它的大小为1 x 1500.下方拍摄(请注意列号不属于myCellArray,只是为了帮助突出显示我想要的答案)。
1 2 3 4 5 6 7 8 9 10 11 12 13
ABC [] DEF DEF DEF [] [] [] ABC ABC ABC [] DEF
我想使用cellfun来调用一个自定义函数,该函数将采用类似'ABC'的参数然后返回一个存在ABC的向量,所以答案应该如下所示,
[1 9 10 11]
如何为cellfun创建自定义函数?
答案 0 :(得分:2)
这将给出包含所需字符串(在任何行中)的列的索引:
c = {1 2 3 4 5 6 7 8 9 10 11 12 13
'ABC' [] 'DEF' 'DEF' 'DEF' [] [] [] 'ABC' 'ABC' 'ABC' [] 'DEF'};
indices = find(any(strcmp('ABC', c), 1));
关键是要注意strcmp
功能
false
。如果您只有一行,则可以删除any(...,1)
(虽然一般答案也有效):
c = {'ABC' [] 'DEF' 'DEF' 'DEF' [] [] [] 'ABC' 'ABC' 'ABC' [] 'DEF'};
indices = find(strcmp('ABC', c));