You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MATLAB/GNU Octave的TREEPLOT函数中统计节点与边的数量

在MATLAB/GNU Octave中统计Treeplot的节点与边数量

方法一:从图形对象中直接统计(符合先创建图形再统计的要求)

运行示例代码生成树图后,可通过提取图形对象的属性区分节点和边:treeplot绘制的节点是带有标记(默认圆形)的Line对象,边是不带标记的Line对象。筛选这两类对象的数量即可得到统计值。

完整代码:

clf;  
tree = [2 4 2 0 6 4 6];  
treeplot(tree);  % 绘制树图

% 获取当前坐标轴下所有Line类型的图形对象
line_objs = findobj(gca, 'Type', 'Line');

% 统计节点数量:筛选Marker属性不为'none'的对象
node_num = sum(~strcmp({line_objs.Marker}, 'none'));
% 统计边数量:筛选Marker属性为'none'的对象
edge_num = sum(strcmp({line_objs.Marker}, 'none'));

% 输出结果
disp(['节点数量:', num2str(node_num)]);
disp(['边数量:', num2str(edge_num)]);

方法二:从输入数组直接推导(快速验证)

treeplot的输入向量tree中,每个索引对应一个节点,元素值是该节点的父节点(0代表根节点)。因此:

  • 节点数量 = 输入向量的长度,即length(tree)
  • 树结构的边数 = 节点数 - 1,即length(tree) - 1

对于示例输入[2 4 2 0 6 4 6],节点数为7,边数为6,和图形统计的结果一致。

内容的提问来源于stack exchange,提问作者challote

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 01:24:56