编程思路如下:
假设邻接矩阵为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