创建您自己的自定义 cellfun 函数
create your own custom cellfun function
我有一个名为 myCellArray 的元胞数组。它的大小为 1 x 1500。下面的快照(请注意列号不是 myCellArray 的一部分只是希望有助于突出显示我想要的答案向量 returned)。
1 2 3 4 5 6 7 8 9 10 11 12 13
ABC [] DEF DEF DEF [] [] [] ABC ABC ABC [] DEF
我想使用 cellfun 调用自定义函数,该函数将采用 'ABC' 之类的参数,然后将其传递给 return 存在 ABC 的向量,因此答案应如下所示,
[1 9 10 11]
如何为 cellfun 创建自定义函数?
这将给出包含所需字符串(在任何行中)的列的索引:
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));
我有一个名为 myCellArray 的元胞数组。它的大小为 1 x 1500。下面的快照(请注意列号不是 myCellArray 的一部分只是希望有助于突出显示我想要的答案向量 returned)。
1 2 3 4 5 6 7 8 9 10 11 12 13
ABC [] DEF DEF DEF [] [] [] ABC ABC ABC [] DEF
我想使用 cellfun 调用自定义函数,该函数将采用 'ABC' 之类的参数,然后将其传递给 return 存在 ABC 的向量,因此答案应如下所示,
[1 9 10 11]
如何为 cellfun 创建自定义函数?
这将给出包含所需字符串(在任何行中)的列的索引:
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));