>假设我有一个单元格数组,定义如下:
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))
您希望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