2017-03-17 107 views
-1

我已经在matlab中生成了三维点。我需要的是形成随机图,并显示其连接,使得连接的链路为1,否则为0 ..建议..如何生成随机3D图并在matlab中显示其相邻矩阵

n=10; 
PlotSizex=100; 
PlotSizey=100; 
PlotSizez=-100; 
x=PlotSizex*rand(1,n) 
y=PlotSizey*rand(1,n) 
z=PlotSizez*rand(1,n) 
plot3(x(:),y(:),z(:),'O-') 

回答

1

那么,你产生了哪些是不是一个真正的图形,它只是一组随机生成的3D点,以图形方式表示与线连接(plot3函数中的'O-'选项)。但是,作为它们是“顺序”连接的,它们的Adjacency Matrix将只是一个n*n矩阵具有填充有那些上下对角线,和(从here服用方法)其余零:

A = full(gallery('tridiag', n, 1, 0, 1)) 

% A = 

% 0  1  0  0  0  0  0  0  0  0 
% 1  0  1  0  0  0  0  0  0  0 
% 0  1  0  1  0  0  0  0  0  0 
% 0  0  1  0  1  0  0  0  0  0 
% 0  0  0  1  0  1  0  0  0  0 
% 0  0  0  0  1  0  1  0  0  0 
% 0  0  0  0  0  1  0  1  0  0 
% 0  0  0  0  0  0  1  0  1  0 
% 0  0  0  0  0  0  0  1  0  1 
% 0  0  0  0  0  0  0  0  1  0 
+0

我已经改变我的问题。你能否给出建议.. –

+0

我很抱歉,但你的问题不是很清楚,我不确定是否“[连通性](https://en.wikipedia.org/wiki/Connectivity_(graph_theory))”是真的是你在找什么。顺便说一句,你有没有试过看这个网页? [无向边图](https://nl.mathworks.com/help/matlab/ref/graph-object.html)。 – UJIN

+0

精确地绘制无向边,但应以3D方式显示。 –