Why the same code works for the matrix of size 5 but does not work for the matrix of size 100?
1 view (last 30 days)
Show older comments
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
5 Comments
Accepted Answer
Matt J
on 12 May 2013
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.
See Also
Categories
Find more on Operating on Diagonal Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!