我有一个嵌套的单元格,它代表树状结构:
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