假设我有一个如下定义的单元格数组:
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单元格)
如果有人可以提供帮助,我们将不胜感激!
先谢谢,
<磷>氮答案 0 :(得分:2)
你快到了:
I = find(cellfun(@(x)(length(x)>threshold), A))
您希望find
超出cellfun
。如果cellfun
的元素大于A
,threshold
将返回逻辑数组。您不需要'UniformOutput', false
位,因为您为每个单元格返回一个布尔值,因此输出是均匀的。
最后你有length(A)
,但这是A
中的单元格数量,因为你实际想要在代码中由x
给出的每个单元格中的向量长度
e.g。
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