假设邻接矩阵为A,I为链路长度矩阵。毁银族经过n步后为可达矩阵M,
则有:
B=(A+I)^n=I+A+A^2+..A^n
再将B中非零元素改为1,零元素不变即为A的n步可达矩阵M;
代码如下:
function M=reach(A,I,n)
%A,I和n要给定
[row,cow]=size(A) %此处row和cow应该相等
E=ones(row,cow) %生成单位矩阵E
B=zeros(row,cow) %初始全0矩阵B
B=B+I
%循环+A^n
for i=1:n
B=B+A^i
end
%将B中非零元素改为1,零元素不变,即让B和E进行交运算。
M=B&E纤弊
end
楼上那个算法缺了一步,应该是
n=size(A,1)
p=A
for i=2:n
p=p+A^i
end
x=eye(n,n)
p=p+x
p(p~=0)=1
因为可达矩阵是I+A+A^2+A^3+……
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)