I\'m new to Julia and this seems like a straight-forward operation but for some reason I am not finding the answer anywhere.
I have been going through some tutorials
In julia, operations on matrices treat the matrix as an object rather than a collection of numbers. As such exp(A)
tries to perform the matrix exponential which is only defined for square matrices. To get element-wise operations on matrices, you use broadcasting which is done with the dot operator. Thus here, you want exp.(A)
.
This design is used because it allows any scalar operation to be done on arrays rather than just the ones built in to the language.
The broadcasting operator .
always changes a function to "element-wise". Therefore the answer is exp.(A)
, just like sin.(A)
, cos.(A)
, or f.(A)
for any user-defined f
.
In addition to the above answer, one might also wish to consider the broadcast operator with function piping:
A = rand(-10:10, 3, 3)
A .|> sin .|> inv