nInternalUnits=10
internalWeights=0
connectivity=0.6
success1 = 0
success = 0
k=0
while(success == 0)
{
# following block might fail, thus we repeat until we obtain a valid
# internalWeights matrix
internalWeights=matrix(runif(nInternalUnits*nInternalUnits,0,1),nrow=nInternalUnits,ncol=nInternalUnits,byrow=TRUE)
while(runif(nInternalUnits*nInternalUnits,0,1)==0&&success1==0)
{
k=k+1
if(k==(1-connectivity)*nInternalUnits*nInternalUnits)
{
internalWeights
success1 = 1
}
}
if(success1 == 1)
{
internalWeights[internalWeights!=0] = internalWeights[internalWeights!=0] - 0.5;
maxVal = max(abs(eigen(internalWeights,only.values = TRUE)$values));
internalWeights = internalWeights/maxVal;
success = 1
}
}
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
关键是while(runif(nInternalUnits*nInternalUnits,0,1)==0&&success1==0)统计矩阵中的0的个数不会