【发布时间】:2016-05-01 18:37:36
【问题描述】:
我正在尝试用 Python 写这个 matlab implementation,但我有一会儿不明白:
last_v = 个(N, 1) * inf;
我们是否在这里获得了一个包含所有无穷大的向量? 在这种情况下,while 中的条件立即为假,我们没有获得任何迭代:
while(norm(v - last_v, 2) > v_quadratic_error)
我怎么理解是假的?
这个方法,我试过了:
from numpy import *
def pagerank(M,d,v_quadratic_error):
count = 0
N=M.shape[1]
v=random.rand(N,1)
v=v/linalg.norm(v)
ainf=array([[inf]])
last_v = dot(ones((N,1)),ainf)
R = d*M + ((1-d)/N * ones((N,N)))
while linalg.norm(v-last_v,2) > v_quadratic_error:
last_v = v
v = dot(R,v)
count+=1
print 'iteration #', count
return v
【问题讨论】:
标签: python matlab linear-algebra pagerank