我正在编写代码以使用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?
我的图表是