所以我制作了一个权重矩阵B和一个我想选择节点的顺序的矢量b。
我的b=(3 5 1 2 4)
现在我想从矢量B中总结我所经过的边缘的权重。我想要求和
B[3,5]+B[5,1]+...
所以我说:
for(i in 1:n-1){
s=sum(B[b[i],b[i+1]])
}
s
但所有这些产生的输出都是这样的:
[1] 1
我做过傻事吗?
答案 0 :(得分:1)
您可以尝试:
sum(B[cbind(head(b,-1),b[-1])])
而且,你的循环应该是:
s = 0
for(i in 1:n-1){
s=s + B[b[i],b[i+1]]
}