Matlab 如何在复杂单元中查找元素?
我有一个复杂的单元阵列,例如:Matlab 如何在复杂单元中查找元素?,matlab,Matlab,我有一个复杂的单元阵列,例如: A = {1 {2; 3};4 {5 6 7;8 9 10}}; 如何在一个元素中找到元素? 例如,我想检查9是否在A中 如果可以为单元格数组设置任意数量的嵌套级别,则只需向下递归所有嵌套级别以检查值。这里有一个函数可以实现这一点: function isPresent = is_in_cell(cellArray, value) f = @(c) ismember(value, c); cellIndex = cellfun(@iscell, cel
A = {1 {2; 3};4 {5 6 7;8 9 10}};
如何在一个元素中找到元素?
例如,我想检查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
此函数将检查非单元数组的条目的值,然后提取单元数组的条目以删除一个嵌套层。重复此操作,直到不再有属于单元格数组的条目,或者找到值。单元格是否可以包含任何级别的数据,或者是否只有两个级别的数据?可以是任何级别的数据,因为它是随机生成的,所以我可以建议一个递归,首先取消嵌套单元格的打包…@scmg我也会这样做。根据需要打开电池包装,然后检查是否包含。