假设我有一个定义如下的单元格数组:
A = {[1:6],[1:4], [1:6],[1:4],[1:4],[1:6] };
我想找到长度大于阈值的单元格的索引,我认为这可能有效:
I = cellfun(@(x) find(length(A)>threshold), A, 'UniformOutput', false);
但它没有(它返回一个包含所有 1 的 1x6 单元格)
如果有人可以提供帮助,将不胜感激!
提前致谢,
ñ
您快到了:
I = find(cellfun(@(x)(length(x)>threshold), A))
你想find
在cellfun
. 如果元素大于或不大于cellfun
,将返回一个逻辑数组。您不需要该位,因为您为每个单元格返回一个布尔值,因此输出是统一的。A
threshold
'UniformOutput', false
最后你有length(A)
,但这是A
你真正想要的每个单元格中向量的长度的单元格数量,这是x
你的代码中给出的
例如
A = {[1:6], [1:4], [1:6], [1:4], [1:4], [1:6]};
thresold = 5;
I = find(cellfun(@(x)(length(x)>threshold), A))
I =
1 3 6