File: rowscale.m

package info (click to toggle)
suitesparse 1%3A5.8.1%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 152,716 kB
  • sloc: ansic: 774,385; cpp: 24,213; makefile: 6,310; fortran: 1,927; java: 1,826; csh: 1,686; ruby: 725; sh: 535; perl: 225; python: 209; sed: 164; awk: 60
file content (17 lines) | stat: -rw-r--r-- 657 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function C = rowscale (A)
%ROWSCALE row scale an adjacency matrix by out-degree
% C = rowscale (A)

% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2020, All Rights Reserved.
% http://suitesparse.com   See GraphBLAS/Doc/License.txt for license.

% scale the adjacency matrix by out-degree
dout = sum (A,2) ;              % dout(i) is the out-degree of node i
is_nonempty = (dout > 0) ;      % find vertices with outgoing edges
nonempty = find (is_nonempty) ; % list of vertices with outgoing edges
n = size (A,1) ;

% divide each non-empty row by its out-degree
dinv = 1 ./ dout (is_nonempty) ;
D = sparse (nonempty, nonempty, dinv, n, n) ;
C = D * A ;