我想用该函数求解最短路程,结果出现这样一句话
weight=[48 45 48 51 36 48 39 42 48 27 48 51 27 30 27 27 75 30 27 39 39 45 45 45 57 23 30 42 48 42 48 ];
dg=sparse(a,b,weight);
[m,n]=graphshortestpath(dg,1,2)
请问各位怎么回事呀
同学你好,你用sparse函数构成的连接矩阵不是方阵,导致后面那个函数graphshortestpath内部调用的另外一个函数graphalgs算法产生错误。
改正的办法是把sparse内部调用设置为方阵,这样就不会有问题啦!
a=[1,1,1,2,2,3,3,4,4,5,6,6,7,8,8,8,8,9,9,9,10,10,11,11,12,13,13,14,14,15,17];
b=[2,5,6,3,5,4,9,10,11,8,7,12,8,9,13,12,14,10,13,15,11,15,15,16,14,14,15,15,17,16,18];
weight=[48 45 48 51 36 48 39 42 48 27 48 51 27 30 27 27 75 30 27 39 39 45 45 45 57 23 30 42 48 42 48 ];
N = max([a(:);b(:)]);%N是方阵的大小
dg=sparse(a,b,weight, N, N);%稀疏矩阵设置为N×N大小的方阵即可
[m,n]=graphshortestpath(dg,1,2)
不是已经提示的很清楚了,必须拥有相同的行数和列数