如何在Matlab中创建传记功能中的位置?

时间:2019-06-17 06:29:12

标签: matlab graph-theory

我正在编写代码以使用Matlab查找最短距离。我的示例是一个具有6个节点和11个边线作为坐标,距离的传记对象。但是,Matlab中的传记功能没有提供如何更改坐标?我想将坐标Ux和Ux应用于节点1到节点6。请帮助我完成此任务。有我的代码:

六个节点的坐标为:

Ux = [-84; 817; 123; -230; -342; -708];
Uy = [350; 100; 500; 12; -172; -445];

创建一个有6个节点和11个边的有向图。

m = [4 6 2 5 6 3 5 1 2 1 4];
n = [1 2 3 3 3 4 4 5 5 6 6];

x1 = zeros(numel(m),1);
y1 = zeros(numel(m),1);
x2 = zeros(numel(n),1);
y2 = zeros(numel(n),1);

for i = 1 : numel(m)
    x1(i,1) = Ux(m(i),1);
    y1(i,1) = Uy(m(i),1);
    x2(i,1) = Ux(n(i),1);
    y2(i,1) = Uy(n(i),1);
end


dist = zeros(1,numel(m) );
for i = 1 : numel(m)
    X1  = [x1(i),y1(i); x2(i),y2(i)];
    dist(1,i) = pdist (X1,'euclidean');
end

figure(1);

dg = sparse(m,n,dist);
h = view(biograph(dg,[],'ShowWeights','on'));
[dist,path,pred] = graphshortestpath(dg,1,6);
set(h.Nodes(path),'Color',[1 0.4 0.4])

但是,由Ux和Uy提供的坐标不属于11个距离。如何修改坐标为Ux的图形和坐标为dist的Uy?

我的图表是

enter image description here

0 个答案:

没有答案