发布网友
共3个回答
热心网友
a=[0 15 inf inf 24 inf 18 inf inf inf inf inf;
15 0 22 inf inf inf inf inf inf inf inf inf;
inf 22 0 18 16 inf inf inf 20 inf inf inf;
inf inf 18 0 inf 12 inf inf inf inf inf inf;
24 inf 16 inf 0 inf inf 12 24 inf inf inf;
inf inf inf 12 inf 0 inf inf 12 inf inf 22;
18 inf inf inf inf inf 0 15 inf 22 inf inf;
inf inf inf inf 12 inf 15 0 30 inf 25 inf;
inf inf 20 inf 24 12 inf 30 0 inf 19 19;
inf inf inf inf inf inf 22 inf inf 0 19 inf ;
inf inf inf inf inf inf inf 25 19 19 0 21;
inf inf inf inf inf 22 inf inf 19 inf 21 0];
>> [D,path]=floyd(a)
D =
0 15 37 55 24 60 18 33 48 40 58 67
15 0 22 40 38 52 33 48 42 55 61 61
37 22 0 18 16 30 43 28 20 58 39 39
55 40 18 0 34 12 61 46 24 62 43 34
24 38 16 34 0 36 27 12 24 49 37 43
60 52 30 12 36 0 57 42 12 50 31 22
18 33 43 61 27 57 0 15 45 22 40 61
33 48 28 46 12 42 15 0 30 37 25 46
48 42 20 24 24 12 45 30 0 38 19 19
40 55 58 62 49 50 22 37 38 0 19 40
58 61 39 43 37 31 40 25 19 19 0 21
67 61 39 34 43 22 61 46 19 40 21 0
path =
1 2 2 2 5 5 7 7 5 7 7 5
1 2 3 3 3 3 1 1 3 1 3 3
2 2 3 4 5 4 5 5 9 9 9 9
3 3 3 4 3 6 3 3 6 6 6 6
1 3 3 3 5 9 8 8 9 8 8 9
9 4 4 4 9 6 9 9 9 9 9 12
1 1 8 8 8 8 7 8 8 10 8 8
7 7 5 5 5 9 7 8 9 7 11 11
5 3 3 6 5 6 8 8 9 11 11 12
7 7 11 11 7 11 7 7 11 10 11 11
8 9 9 9 8 9 8 8 9 10 11 12
9 9 9 6 9 6 11 11 9 11 11 12
热心网友
a的输入有误,将∞改为inf,如下:
a=[0 15 inf inf 24 inf 18 inf inf inf inf inf;
15 0 22 inf inf inf inf inf inf inf inf inf;
inf 22 0 18 16 inf inf inf 20 inf inf inf;
inf inf 18 0 inf 12 inf inf inf inf inf inf;
24 inf 16 inf 0 inf inf 12 24 inf inf inf;
inf inf inf 12 inf 0 inf inf 12 inf inf 22;
18 inf inf inf inf inf 0 15 inf 22 inf inf;
inf inf inf inf 12 inf 15 0 30 inf 25 inf;
inf inf 20 inf 24 12 inf 30 0 inf 19 19;
inf inf inf inf inf inf 22 inf inf 0 19 inf ;
inf inf inf inf inf inf inf 25 19 19 0 21;
inf inf inf inf inf 22 inf inf 19 inf 21 0]
热心网友
函数中有用到a,所以要对a赋值在调用函数之前的