Jeremy
Jeremy

Reputation: 123

How does one perform the exp() operation element-wise in Juila?

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.

Upvotes: 9

Views: 6380

Answers (3)

Meow
Meow

Reputation: 1742

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

Upvotes: 2

Chris Rackauckas
Chris Rackauckas

Reputation: 19162

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.

Upvotes: 9

Oscar Smith
Oscar Smith

Reputation: 6398

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.

Upvotes: 14

Related Questions