MATLAB: The same code works for the matrix of size 5 but does not work for the matrix of size 100

large matrixsparse matrix

Hi,
I have a sparse matrix L of zeros and ones and I want to change the non-zero entries to some fractions. This is my code:
beta = 0.5
n = size(L,1); %set n = dim(L)
rsv=ones(1,n)*L; %row sum vector of L
H =L;
for i=1:n
for j=1:n
if H(i,j) == 1
H(i,j)=1/((1-beta)*rsv(i)+ beta*rsv(j));
end
end
end
I found this code works for the matrix of size 5 but does not work for the matrix of size 100 (all entries stay unchanged).
Do you know why and how to change the code?
Many thanks,
Weijian

Best Answer

  • If L has a single 1 on all columns then rsv(i)=1 for all i. If that happens then
    1/((1-beta)*rsv(i)+ beta*rsv(j))
    will equal 1 for all i and j.