我有一个复杂的元胞数组,例如:
A = {1 {2; 3};4 {5 6 7;8 9 10}};
如何找到A中的元素?
例如,我想检查 9 是否在 A 中!
如果您的元胞数组可以有任意数量的嵌套级别,则只需递归所有级别即可检查值。这是一个可以执行此操作的函数:
function isPresent = is_in_cell(cellArray, value)
f = @(c) ismember(value, c);
cellIndex = cellfun(@iscell, cellArray);
isPresent = any(cellfun(f, cellArray(~cellIndex)));
while ~isPresent
cellArray = [cellArray{cellIndex}];
cellIndex = cellfun(@iscell, cellArray);
isPresent = any(cellfun(f, cellArray(~cellIndex)));
if ~any(cellIndex)
break
end
end
end
此函数将检查不是元胞数组的条目的值,然后提取元胞数组的条目以删除一个嵌套层。重复此操作,直到不再有元胞数组条目或找到该值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)