Column wise broadcast for a matrix

Sorry if this has been posted a bunch but my googling has failed me. How do I broadcast a function by column for a 2 dimensional matrix? Say I want to, for each column in a matrix, normalize it with respect to the mean of that column. normalize.(mymatrix) will apply to each element, not each column.


I think the most elegant way to broadcast a function by column is to use mapslices. So try this:

mapslices(normalize, mymatrix, 1)

The third argument specifies the dimensions to broadcast over. So 1 for columns, 2 for rows, or a vector for high level multidimensional magic. See the documentation for more info.


Thank you! exactly what I was looking for.

For more complicated things, one can use the do syntax I guess.

mapslices(mymatrix, 1) do x
1 Like