Arrays Functions and the Dot Operator
Apply a scalar function to an array by resorting to the broadcasting dot operator.
It often happens that we have a function which can be applied to a scalar number, but we want to apply it to an array. Of course, we could resort to a for loop to this element-wise function application. But that would be too much hassle.
Fortunately, in Julia we can easily turn a function than accepts a scalar value, and apply it element-wise to an array. The way to do this is to employ a ‘dot’ after the function’s name.
For example, let’s define a scalar function f
, and apply it to an array.
f(x) = 3x^3/(1+x^2)
x = [2π/n for n=1:30]
y = f.(x)
Failing to use the dot in the above example would have lead to an error.
A common ‘gotcha’ is that, for example, trigonometric functions (or even arithmetic functions) can also require this treatment. We have to do:
y = sin.(x)
In case we need to use the dot operator a lot of times in an expression, instead of doing
y = 2x.^2 + 3x.^5 - 2x.^8
we can resort to broadcasting the dot operator, like this
y = @. 2x^2 + 3x^5 - 2x^8