Zero out "small" entries subject to structural rank
A = gangstr(M,tol)
A = gangstr(M,tol)
creates
matrix A
of full structural rank such that A
is M
except
that elements of M
that are relatively "small,"
based on tol
, are zeros in A
.
The algorithm decreases tol
, if needed, until sprank(A) = sprank(M)
. M
must
have at least as many columns as rows. Default tol
is 1e-2
.
gangstr
identifies elements of M
that
are relatively less than tol
by first normalizing
all the rows of M
to have norm 1
.
It then examines nonzeros in M
in a columnwise
fashion, replacing with zeros those elements with values of magnitude
less than tol
times the maximum absolute value
in that column.