早教吧 育儿知识 作业答案 考试题库 百科 知识分享

matlab运行出现问题,Attemptedtoaccesse(1,0);indexmustbeapositiveintegerorlogical.高手帮我看看以下程序吧,dijkstra算法,记录任意两点之间的最短路径,ifnetCostMatrix(t,farthestPreviousHop(t))<netCostMatrix(t,p)

题目详情
matlab运行出现问题,Attempted to access e(1,0); index must be a positive integer or logical.
高手帮我看看以下程序吧,dijkstra算法,记录任意两点之间的最短路径,if netCostMatrix(t,farthestPreviousHop(t)) < netCostMatrix(t,p) 在这行出现问题
function [path,totalCost,farthestPreviousHop,farthestNextHop] = dijkstra_1(n,netCostMatrix,farthestPreviousHop,farthestNextHop)
visited(1:n) = 0;
distance(1:n) = inf; % it stores the shortest distance between each node and the source node;
parent(1:n) = 0;
fid=fopen('allpath.txt','w');
for s = 1:100
distance(s) = 0;
for i = 1:(n-1),
temp = [];
for h = 1:n,
if visited(h) == 0 % in the tree;
temp=[temp distance(h)];
else
temp=[temp inf];
end
end;
[t,u] = min(temp); % it starts from node with the shortest distance to the source;
visited(u) = 1; % mark it as visited;
for v = 1:n,% for each neighbors of node u;
if ( ( netCostMatrix(u,v) + distance(u)) < distance(v) )
distance(v) = distance(u) + netCostMatrix(u,v); % update the shortest distance when a shorter path is found;
parent(v) = u; % update its parent;
end;
end;
end;
for d = s:100,
path = [];
if parent(d) = 0 % if there is a path!
%path = [];
t = d;
path = [d];
while t = s
p = parent(t);
path = [p path];
if netCostMatrix(t,farthestPreviousHop(t)) < netCostMatrix(t,p)
farthestPreviousHop(t) = p;
end;
if netCostMatrix(p,farthestNextHop(p)) < netCostMatrix(p,t)
farthestNextHop(p) = t;
end;
t = p;
end;
totalCost= distance(d);
fprintf(fid,'%d ',path); %记录源点到任意一点的最短路径
end;
%allpath(d)=path;
end
fprintf(fid,'\n');
end
fclose(fid);
return;
s是起始节点,d是目标节点
令s=1时,程序没有问题,但是加上循环for s = 1:100 时,
▼优质解答
答案和解析
nit PublicTree;
interface
uses
Windows,Messages,SysUtils,Classes,Graphics,Controls,Forms,Dialogs,
ComCtrls,ImgList,DB,Menus;
type
TFrameTree = class(TFrame)
tvTree:TTreeView;
ImageList1:TImageList;
procedure tvTreeExpanding(Sender:TObject; Node:TTreeNode;
var AllowExpansion:Boolean);
看了 matlab运行出现问题,A...的网友还看了以下:

某人在汽车站M的北偏西20°的方向上的A处(如图所示),观察到C处有一辆汽车沿公路向M站行驶,公路  2020-06-12 …

如图所示,某人在M汽车站的北偏西20°的方向上的A处,观察到点C处有一辆汽车沿公路向M站行驶,公路  2020-07-08 …

某人在M汽车站的北偏西15度的方向上的A处,观察到点C处有一辆汽车沿公路向M站行驶.公路的走向是M  2020-08-04 …

某山山脚的M处到山顶的N处有一条长为600米的登山路,小李沿此路从M走到N,停留后再原路返回,期间小  2020-11-06 …

设n为自然数,且n大于等于4,又设凸n边形的内角中至多出现M个锐角,正n边形的内角中至少出现m个锐角  2020-11-23 …

如图,OA、OB表示两条交叉的公路,M、N两点分别表示两个村庄,现计划修建一个货运站,希望到两个村庄  2020-12-15 …

一条山路上坡路有m米,下坡路有n米,某人上坡时速度为a米/分,下坡时速度为b米/分,求山路平均速度A  2020-12-27 …

关于物理楞次定律阻碍表现M,N水平,P,Q竖直,导体棒从上往下穿过正中.(插图放不进来),假设成一个  2020-12-27 …

小刚同学家里照明电路中的漏电保护开关(总保险)突然自动断开(即跳闸现象),发生这种现象的原因可能是(  2020-12-27 …

某地有两所大学和两条相交叉的公路,(点M,N表示大学,AO,BO表示公路).现计划修建一某地有两所大  2021-01-16 …