How does one perform the exp() operation element-w

2020-04-11 11:01发布

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.

3条回答
再贱就再见
2楼-- · 2020-04-11 11:15

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.

查看更多
啃猪蹄的小仙女
3楼-- · 2020-04-11 11:35

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.

查看更多
▲ chillily
4楼-- · 2020-04-11 11:40

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
查看更多
登录 后发表回答