PageRank MATLAB 实现

PageRank
参考http://www.doc88.com/p-11465283738.html

G = [0 1 1 0 1 1 0;
     1 0 1 1 0 0 0;
     1 0 0 1 1 0 0;
     1 0 0 0 1 0 0;
     1 0 0 1 0 1 1;
     0 0 0 1 1 0 0;
     1 0 0 0 0 0 0];

[n,n] = size(G);
p = 0.85
delta = (1-p)/n;
sn = sum(G,1); %按列求矩阵G的列和
D = diag(1./sn);
A = p*G*D + delta;

%幂迭代法
x = ones(n,1)/n; %迭代初始向量
z = zeros(n,1);
cnt = 0; %记录迭代步数
while max(abs(x-z)) > 0.0001
  z = x;
  x = A * x;
  cnt = cnt + 1;
end
[x1,index] = sort(x);
x1 = flipud(x1);
index = flipud(index);

out = [1:n;x1‘;index‘];
fprintf(‘迭代步数 =  %d\n‘,cnt)
str1 = ‘排名‘;str2 =‘PageRank得分‘; str3 = ‘序号‘;
fprintf(‘%-6s %-15s %-5s\n‘,str1,str2,str3);
fprintf(‘%-6d %-15f %-5d\n‘,out);

结果

p =

    0.8500

迭代步数 =  11
排名     PageRank得分      序号   
1      0.276926        1    
2      0.185228        5    
3      0.147001        2    
4      0.130779        3    
5      0.107858        4    
6      0.083714        6    
7      0.068494        7
时间: 2024-11-13 12:48:13

PageRank MATLAB 实现的相关文章

【转】深入浅出PageRank算法

原文链接 http://segmentfault.com/a/1190000000711128 PageRank算法 PageRank算法是谷歌曾经独步天下的“倚天剑”,该算法由Larry Page和Sergey Brin在斯坦福大学读研时发明的, 论文点击下载: The PageRank Citation Ranking: Bringing Order to the Web. 本文首先通过一些参考文献引出问题,然后给出了PageRank的几种实现算法, 最后将其推广至在MapReduce框架下

【转】Google 的秘密- PageRank 彻底解说 中文版

原文链接 http://www.t086.com/good/pagerank_cn.htm 原著:Google の秘密 - PageRank 徹底解説 Hajime BABA / 馬場 肇   翻译:Kreny / 袁 黄琳 <krenyATdalouis.com> 创作于:2003/12   最后更新: 2004年1月23日 12:06  关键词:pagerank, google, link翻译说明: 一些语句的翻译上使用了意译,使得尽可能得符合中文的理解和说明思路.版权声明:可以任意转载,

PageRank理论与实践

PageRank,网页排名,又称网页级别.Google左侧排名或佩奇排名,是一种由根据网页之间相互的超链接计算的技术,而作为网页排名的要素之一. Google用它来体现网页的相关性和重要性,在搜索引擎优化操作中是经常被用来评估网页优化的成效因素之一.PageRank适用于任何图或网络在任何域.因此,PageRank是现在经常使用在文献计量学,社会和信息网络分析,用于链接预测和推荐,甚至用于道路网络的系统分析,以及生物学,化学,神经科学,物理. 原理: 由于存在一些出链为0,也就是那些不链接任何其

利用MATLAB进行曲线拟合

软件环境:MATLAB2013a 一.多项式拟合 多项式拟合是利用多项式最佳地拟合观测数据,使得在观测数据点处的误差平方和最小. 在MATLAB中,利用函数ployfit和ployval进行多项式拟合. 函数ployfit根据观测数据及用户指定的多项式阶数得到光滑曲线的多项式表示,polyfit的一般调用格式为:P = polyfit(x,y,n).其中x为自变量,y为因变量,n为多项式阶数. polyval的输入可以是标量或矩阵,调用格式为 pv = polyval(p,a) pv = pol

MATLAB检查指定路径中的子文件夹中的文件名中是否带有空格

测试文件夹为: clear;close all;clc; %% %程序实现的功能 %检查指定路径中的子文件夹中的文件名中是否带有空格,并去掉文件名中的空格 %% %程序中用到的之前不清楚的函数如下 %1)strfind(a,b):即找a中是否有b,如果a中有b,则输出b的位置序号.没有输出空数组 %2)isempty(a):判断数组是否为空 %3)strrep(a,b,c):就是把a中所有出现的b换为c %4)movefile(a,b):a移动为b,如C:\test1.jpg移动为C\test2

关于MATLAB处理大数据坐标文件2017620

暑假已至,接下来组内成员将会各回各家,各找各妈,这肯定是对本次大数据比赛是很不利的. 接下来我会把任务分配给组员,当然任务会比起初的时候轻一点,因为我认为本次比赛的目的并不是我要求组员做什么,而是我的组员要求自己做什么! 我们现在主要接触的两门语言: MATLAB语言在数据处理方面很牛,它的画图功能也是杠杠的,尤其是3D画图 Python语言是一门近几年很火的语言,学好它对自己肯定只有益处,它的出生很晚,但是短短十多年,它已经稳居计算机语言前三名.尤其是现在的大数据时代,它的代码不仅简单易懂,而

linux用命令行运行matlab的.mat文件

入m文件所在目录后,运行 $ matlab -nodesktop -nosplash -r matlabfile 只用文件名matlabfile,不能添加.m

对AM信号FFT的matlab仿真

普通调幅波AM的频谱,大信号包络检波频谱分析 u(t)=Ucm(1+macos ?t)cos ?ct ma称为调幅系数 它的频谱由载波,上下边频组成 , 包络检波中二极管截去负半周再用电容低通滤波,可以得到基带信号,那么,截去负半周后的AM信号必定包含基带信号的频谱.我们可以通过matlab来验证. %已知基带信号为1hz,载波为64hz,调制系数ma=0.3,采样频率1024hz,FFT变换区间N为2048 clear; fs=1024; f=1; %1hz基带信号 fc=64; %64hz载

Matlab中使用jython扩展功能

Matlab中面向对象能力并不强,通过使用jython引擎能够对其功能扩展. 1 编辑classpath.txt增加jython.jar 在matlab中输入 which classpath.txt 结果: /usr/local/MATLAB/R2013a/toolbox/local/classpath.txt 编辑该文件,加入 /home/your_user/jython2.5.3/jython.jar 2 又一次启动matlab 3 编写代码測试 import javax.script.In