一、读入数据,生成邻接矩阵
a<-read.table("./第二份数据.txt",sep="\t")
A<-as.matrix(a)
I<-diag(nrow(a))
#计算A+I
M1 = A+I
二、根据M1的n次方等于其n-1次方,得到可达矩阵
t=0 #记录迭代次数
repeat{
new <- M1 %*% M1;
for (i in 1:nrow(new)){
for (j in 1:nrow(new)){
if (new[i,j]>=1) {new[i,j]=1}
}}
t=t+1
if( identical(new , M1) ) break
else M1 <- new
}
三、一定注意事项
首先矩阵之间的乘法采用的是 %*%
其次,在R语言中控制语句都需要()和{}两个符号,这样便于理解控制语句。
如 if(condition){ exper } 再如 for(i in 1:N){循环体 }
四、repeat和while 被称为循环,似乎不对,应该被称为重复
五、