我正在尝试使用Matlab生成稀疏随机矩阵,但目前遇到了问题。这是我现在的位置。
N=10
i = round(rand(1,N)*10)+1
j = round(rand(1,N)*10)+1
S1 = sparse (i,j,1,N,N);
S = full(S1)
rowsum = sum(S,2);
S = bsxfun(@rdivide, S, rowsum);
现在最后一行是失败的地方。稀疏矩阵中有一些零行。
所以我的问题是我如何规范每一行但保留零行?
答案 0 :(得分:1)
这是我将使用的一个非常简单的模型:
%logical matrix, a web page links to 20% of the other websites on average. This is a strange model, but I don't have a better idear:
doeslink=rand(N)<.2.*1-eye(N)
%generate random link weights
S=rand(N).*doeslink
%avoid nans
rowsum(rowsum==0)=1
%normalise
S = bsxfun(@rdivide, S, rowsum);