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 online and they simply use exp(A) where A is a nxm matrix but this gives me a DimensionMismatch error.
I looked through the documentation on the official website in the elementary functions as well as the linear algebra section and googled it multiple times but can't find it for the life of me.
The broadcasting operator
.
always changes a function to "element-wise". Therefore the answer isexp.(A)
, just likesin.(A)
,cos.(A)
, orf.(A)
for any user-definedf
.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 wantexp.(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.
In addition to the above answer, one might also wish to consider the broadcast operator with function piping: