Normalize a matrix/vector to sum to one (probability simplex)
normalize
projects a vector or matrix onto the
probability simplex.
If all entries (per row or column) get thresholded to
0 (since they are all negative to start with), then
it sets the position of the maximum of x
to
1 and leaves all other entries at 0.
normalize(x, byrow = TRUE, tol = 1e-06)
x |
a numeric matrix(like object). |
byrow |
logical; if |
tol |
a tolerance level to set values < tol to
0 (after an initial normalization). Default:
|
If x
is a vector it returns the thresholded vector
(see threshold
) and normalized by its sum.
If x
is a matrix it works by column of by row
(argument byrow
).
print(normalize(c(1, 4, 2, 2, 10))) print(normalize(c(-1, -2, -1))) AA <- matrix(rnorm(12), ncol = 3) print(normalize(AA, byrow = TRUE)) print(normalize(AA, byrow = FALSE))
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.