如何在 Julia 中按元素执行 exp() 操作?
How does one perform the exp() operation element-wise in Juila?
我是 Julia 的新手,这似乎是一个简单的操作,但出于某种原因,我在任何地方都找不到答案。
我一直在网上浏览一些教程,他们只是使用 exp(A),其中 A 是一个 nxm 矩阵,但这给了我一个维度不匹配错误。
我查看了官方网站上 elementary functions as well as the linear algebra 部分的文档,并用谷歌搜索了多次,但终究找不到。
在 julia 中,矩阵运算将矩阵视为对象而不是数字集合。因此 exp(A)
尝试执行仅为方阵定义的 matrix exponential。要对矩阵进行逐元素操作,可以使用点运算符完成的广播。因此在这里,你想要 exp.(A)
.
之所以使用这种设计,是因为它允许对数组进行任何标量运算
而不仅仅是语言中内置的那些。
广播操作员.
总是将函数更改为"element-wise"。因此答案是 exp.(A)
,就像任何用户定义的 f
.
的 sin.(A)
、cos.(A)
或 f.(A)
除了上述答案之外,您可能还希望考虑带有函数管道的广播运算符:
A = rand(-10:10, 3, 3)
A .|> sin .|> inv
我是 Julia 的新手,这似乎是一个简单的操作,但出于某种原因,我在任何地方都找不到答案。
我一直在网上浏览一些教程,他们只是使用 exp(A),其中 A 是一个 nxm 矩阵,但这给了我一个维度不匹配错误。
我查看了官方网站上 elementary functions as well as the linear algebra 部分的文档,并用谷歌搜索了多次,但终究找不到。
在 julia 中,矩阵运算将矩阵视为对象而不是数字集合。因此 exp(A)
尝试执行仅为方阵定义的 matrix exponential。要对矩阵进行逐元素操作,可以使用点运算符完成的广播。因此在这里,你想要 exp.(A)
.
之所以使用这种设计,是因为它允许对数组进行任何标量运算 而不仅仅是语言中内置的那些。
广播操作员.
总是将函数更改为"element-wise"。因此答案是 exp.(A)
,就像任何用户定义的 f
.
sin.(A)
、cos.(A)
或 f.(A)
除了上述答案之外,您可能还希望考虑带有函数管道的广播运算符:
A = rand(-10:10, 3, 3)
A .|> sin .|> inv