byColumn
Syntax
byColumn(func, X)
Arguments
func is a unary function. When function with multiple parameters is specified for func, partial application is used to fix part of the parameters. It can be a vector function (where the input vector and output vector are of equal length) or an aggregate function.
X is a matrix.
Details
Applies the specified function to each column of the matrix X.
byColumn
can be used in a reactive state engine.
Examples
When func is a unary function that does not support matrix operations, the
byColumn
function is equivalent to each
.
def myvfunc(x): var(x).log()
m = matrix(1.1 2.3 2.1 3.5 4.2, 3.3 2.5 4.2 5.1 0, -1 3.3 2 1.7 2.3)
byColumn(myvfunc, m)
// output
[0.3974329364109,1.334211281249665,0.945072533299607]
To specify a function with multiple parameters for func:
byColumn(add{2}, m)
// output
col1 col2 col3
3.1 5.3 1
4.3 4.5 5.3
4.1 6.2 4
5.5 7.1 3.7
6.2 2 4.3
byColumn(add{1 2 3 4 5}, m)
// output
col1 col2 col3
2.1 4.3 0
4.3 4.5 5.3
5.1 7.2 5
7.5 9.1 5.7
9.2 5 7.3
When func is a user-defined function:
def my_func(x){
return iif(x > 0, 1, -1)
}
m = matrix(3 -6 5 0, 2 -9 -4 5)
byColumn(my_func, m)
// output
col1 col2
1 1
-1 -1
1 -1
-1 1
When func is a nested function:
m = matrix(1 5 3 , 7 5 2)
byColumn(accumulate{def (x, y):iif(x > 5, y-1, y+1), ,1}, m)
// output
col1 col2
2 8
6 4
2 3
Related function: byRow