试图在Matlab中绘制生成树

时间:2018-01-20 16:29:19

标签: matlab plot graph network-analysis spanning-tree

我试图用标题来描绘一棵生成树。

但如果我尝试绘制图表,我会收到以下错误:

Error using rng
Too many input arguments.

Error in matlab.internal.graph.MLGraph/forceLayout>layoutOneConnComp (line 82)
    oldstate = rng(0,'twister');

Error in matlab.internal.graph.MLGraph/forceLayout (line 55)
        [x,y] = layoutOneConnComp(x,y,sources,targets,iterations);

Error in matlab.graphics.chart.primitive.GraphPlot/layoutforce

Error in matlab.graphics.chart.primitive.GraphPlot/layout>layoutauto

Error in matlab.graphics.chart.primitive.GraphPlot/layout

Error in matlab.graphics.chart.primitive.GraphPlot

Error in graph/plot (line 110)
hObj = matlab.graphics.chart.primitive.GraphPlot('BasicGraph', ...

其他信息:

GrangerLandN={ 'X' 'Y' 'Z' ...}';
GrangerCoal={ 'A' 'B' 'C' ...}'; 
GrangerValues=(1,2,3,...)'; 

GG=graph(GrangerLandN,GrangerCoal,GrangerValues)

GG = 

  graph with properties:

    Edges: [100×2 table]
    Nodes: [20×1 table]

plot(GG) %also tried plot(GG,'EgdesLabel',GG.Edges.Weight) but both are throwing the error stated above. 

尝试用较少的观察来做同样的事情并且完美地完成了。错误的原因是什么,以及如何修复代码?

1 个答案:

答案 0 :(得分:1)

此示例中使用的关键功能是MATLOG toolbox中的pplotminspan。以下代码创建了一个网络,然后绘制了一个最小生成树wiki)。

还使用了MATLOG的一些支持功能(请参见下面的代码)来创建示例(摘自MATLOG文档)。

%% 2. Create Delaunay Network from Cities Centered around Atlanta
%% Make network using cities of 30k pop. within 150 miles of Atlanta
Atl = uscity('XY',mand({'Atlanta'},uscity('Name'),{'GA'},uscity('ST')));
[Name,XY]=uscity10k('Name','XY', ...
   (dists(Atl,uscity10k('XY'),'mi') < 150)' & uscity10k('Pop') > 30000);
makemap(XY)
pplot(XY,'r.')

%% Use Delaunay triangulation as road network
tri = delaunay(XY(:,1),XY(:,2));  % Delaunay triangulation
IJ = tri2list(tri);  % Convert to arc list
d = diag(dists(XY(IJ(:,1),:),XY(abs(IJ(:,2)),:),'mi'));
d = d * 1.2;  % Convert great circle to estimated road distances
d = round(d);
IJD = [IJ d];
pplot(IJD,XY,'m-')
pplot(IJD,num2cellstr(d),XY)

%% Minimum Spanning Tree (Kruskal algorithm)
t = minspan(IJD);
pplot(IJD(t~=0,:),XY,'b-','LineWidth',2,'DisplayName','minspan')

Minimum Spanning Tree