查找复杂单元中所有嵌套单元的数量 [英] Finding number of all nested cells in a complex cell

查看:90
本文介绍了查找复杂单元中所有嵌套单元的数量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个嵌套的单元格,它代表树状结构:

I have a nested cell which represents a tree-structure:

CellArray={1,1,1,{1,1,1,{1,1,{1,{1 1 1 1 1 1 1 1}, 1,1},1,1},1,1,1},1,1,1,{1,1,1,1}};

我想找出Matlab中个节点的数量.我在下面放了一张简单的图片,可以帮助您更准确地了解我要寻找的内容:

I want to find out the number of nodes in Matlab. I put a simple picture below that might help you understand what I am looking for more precisely:

谢谢.

推荐答案

如果我理解正确,则需要单元格本身即单元格的数量. 然后,您可以递归地遍历单元格的单元格(和数字),并使用iscell检查以查看哪些元素是单元格.参见以下内容,其中totnod最终给出了节点数.

If I understand correctly, you want the number of cell elements, that are themselves cells. Then you can go recursively through your cell cells (and numbers) and check with iscell to see which elements are cells. See the following, where totnod ultimately gives the number of nodes.

ind=cellfun(@iscell, Chains);
totnod=sum(ind);
oldtmp=Chains(ind);
while ~isempty(oldtmp)
       newtmp={};
       for i=1:length(oldtmp)
           ind=cellfun(@iscell, oldtmp{i});
           newtmp=[newtmp,oldtmp{i}(ind)];
           totnod=totnod+sum(ind);
       end
       oldtmp=newtmp;
end

这篇关于查找复杂单元中所有嵌套单元的数量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆