1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Matlab绘制树形图

Matlab绘制树形图

时间:2021-10-21 00:13:58

相关推荐

Matlab绘制树形图

两种方法绘制树形图,这里只讨论画出树形图,不关心树形图的作用和来源

结果图:

treeplot方法

treeVec = [0 1 2 2 1 5 5 1 8 1 10];treeplot(treeVec);count = size(treeVec,2);[x,y] = treelayout(treeVec);x = x';y = y';name1 = cellstr(num2str((1:count)'));text(x(:,1),y(:,1),name1,'VerticalAlignment','bottom','HorizontalAlignment','right');

深度优先搜索,结果显示为图1所示,treeVec有自己的书写格式,包含所有父节点,具体可查询treeplot帮助文档;生成的树形图有一定局限性,而且某些情况下不够美,可采用下面这种方法。

biograph方法

ChannelName = {'1通道','2通道','3通道','4通道','5通道','6通道','7通道','8通道'};tree = [4 2;4 3;4 5;2 1;5 6;6 7;6 8];cm = zeros(8);for i = 1:7cm(tree(i,1),tree(i,2)) = 1; endbg1 = biograph(cm,ChannelName);view(bg1);

结果如右图所示,理论上可以显示任意树形图;

biograth第一个变量需要输入一个稀疏矩阵,相关函数sparse;

我这里是直接创建了一个稀疏矩阵,通过在某些点赋予1;

cm变量展示图:

cm中为1的坐标就是tree的内容

详情见biograth的官方文档;

biograth功能远不止显示一个树状图这么简单,可以绘制多连通的网状图,利用graphminspantree可以在包含权重的网状图中计算最小生成树,用到再讨论。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。