【发布时间】:2015-02-18 16:24:01
【问题描述】:
所以我已经生成了一个权重矩阵 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
我做了什么傻事吗?
【问题讨论】:
-
矩阵
B的内容是什么(你可以发dput(B),n是什么?(即我们怎么知道1不是正确答案?) -
对于初学者,您可能想要 1) 在循环之前设置
s = 0,2) 在循环内将行更改为s = s + ...,以及 3) 将1:n-1更改为1:(n-1)(否则你会得到0,1...n-1而不是1,2...n-1 -
@DavidRobinson 所以我目前的 B 为:
matrix(c(12,5, 8,0,11,11,1,13,1,15,14, 4,14,12,12,1,7,8,8,13,5, 0,14,3,14), nrow=5)和n=nrow(B)我可以看出 1 仅从 B 来看是不正确的(是的,应该事先发布)。感谢(n-1)的提示,我不知道!当您说s=s+...时,您是什么意思?因为我必须事先定义's'而没有先验值。是的,for 循环似乎什么也没做,因为我现在只得到 s=0
标签: r loops for-loop graph nodes