在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → 标准无标度网络matlab

标准无标度网络matlab

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:1.98KB
  • 下载次数:12
  • 浏览次数:573
  • 发布时间:2016-11-09
  • 实例类别:一般编程问题
  • 发 布 人:wjz_666
  • 文件格式:.m
  • 所需积分:6
 相关标签: 网络

实例介绍

【实例简介】用matlab编程实现无标度度网络算法
【实例截图】

【核心代码】

%   This is the BA_Scale Model by Fan Jin.
%   At first there are only m nodes and no edge, then the m 1st node is
%   connected with the above m nodes
%   usage: Nodes = BA(N,m)
%   the parameter:N----network size
%                 m----a new node with m new edges
%   can randomly initialize the N and the m by yourself
%   the  diagonal elements of the matrix also equal to -degree
%   Nodes----the final coupling matrix
%   The following message(s) may not be displayed correctly for they contain Chinese charactors.
%   list----生成的一个辅助向量,该向量中的元素为每条边端点的节点。for example, 假设网络中节点4的度为7,则在list向量中会存在7个4,而这7个4的位置不一定是连续在一起的。
%   preferential attachment体现在随机的从list向量中选取元素,选中哪个元素,该元素表示的节点即被选中。由于list向量中每个节点的个数与它的度有关,因此,度越大的点被选中的概率越大。
function [Nodes,Cii]=BA(N,m)
% N=10,m=3;
Nodes=zeros(N);
Cii=zeros(1,N);
t=zeros(1,N);
%Nodes=sparse(N);
for i=1:m
    Nodes(i,m 1)=1;
    Nodes(m 1,i)=1;
    A(i)=i;
end
for i=m 1:2*m
    A(i)=m 1;
end
for n=m 2:N                  % start from m 2 to grow the network
    t=2*m*(n-m-1) ;           % for list, every time t increases 2m
    % t=m*(n-m-1);
    for i=1:m
        A(t i)=n;          % in the list, every time the above m is n, it represents that the nth nodes is connected to other m nodes
    end
    k=1;
     while k<m 1               % grow other m nodes
        p(k)=round((t 1)*rand(1));         %    random choose an integer from 1~N
        if p(k)>0&p(k)<(t 1)
            if Nodes(n,A(p(k)))==0
               A(t m k)=A(p(k));
                Nodes(n,A(p(k)))=1;
                Nodes(A(p(k)),n)=1;
                k=k 1;
            end   %end for j
         end    %end for k
    end %end for n
end
%Write_Sparse_Matrix(Nodes,['BA',num2str(N),'.txt']);
%Write_into_Pajek(Nodes,['BA',num2str(N),'.net']);
% for i=1:N
%     Nodes(i,i)=sum(Nodes(:,i));
%     Cii(i)=Nodes(i,i);
% end
for i=1:N
     Cii(i)=sum(Nodes(:,i));
  t(i)=A(i);
end

标签: 网络

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警