1 Star 0 Fork 7

夏汉林/nwcommands

forked from 连享会/nwcommands 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
nwevcent.ado 1.65 KB
一键复制 编辑 原始数据 按行查看 历史
ThomasGrund 提交于 2015-09-18 19:13 . v1.5.1
capture program drop nwevcent
program nwevcent
version 9
syntax [anything(name=netname)] , [nosym GENerate(string)]
_nwsyntax `netname', max(9999)
_nwsetobs
if `networks' > 1 {
local k = 1
}
if "`generate'" == "" {
local generate = "_evcent"
}
local generate_all ""
qui foreach netname_temp in `netname' {
tempvar _comp
nwcomponents `netname_temp', generate(`_comp')
if (r(components) == 1) {
nwtomata `netname_temp', mat(evnet)
tempvar _deg _out _in
nwdegree `netname_temp', isolates generate (`_deg')
capture drop `generate'`k'
if "`sym'" == "" {
mata: evnet = (evnet + evnet')
mata: evnet = evnet:/ evnet
mata: _editmissing(evnet,0)
}
mata: e = evcentrality(evnet)
nwname `netname_temp'
qui gen `generate'`k' = .
mata: st_store((1::`r(nodes)'),"`generate'`k'", e)
replace `generate'`k'= . if _isolate==1
mata: mata drop evnet e
}
else {
capture drop `generate'`k'
gen `generate'`k' = .
}
local generate_all "`generate_all' `generate'`k'"
local k = `k' + 1
}
mata: st_rclear()
di "{hline 40}"
di "{txt} Network name: {res}`netname'"
di "{hline 40}"
di "{txt} Eigenvector centrality"
sum `generate_all'
end
capture mata: mata drop evcentrality()
mata:
real matrix function evcentrality(real matrix M)
{
symeigensystem(M, EC=.,EV=.)
maxEV = (max(EV))
for(i=1;i<=rows(M);i++){
if ((EV[1,i]) ==(maxEV)){
index = i
break
}
}
if (EC[1,index] < 0) {
return(EC[.,index]*-1)
}
else {
return(EC[.,index])
}
}
end
*! v1.5.0 __ 17 Sep 2015 __ 13:09:53
*! v1.5.1 __ 17 Sep 2015 __ 14:54:23
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/xiahanlin/nwcommands.git
git@gitee.com:xiahanlin/nwcommands.git
xiahanlin
nwcommands
nwcommands
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385