MATLAB:如何查找长度大于阈值的单元格的索引



>假设我有一个单元格数组,定义如下:

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 单元格(

如果有人能帮忙,将不胜感激!

提前致谢,

N

你快到了:

I = find(cellfun(@(x)(length(x)>threshold), A))

您希望findcellfun之外。 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

最新更新