首页 > 解决方案 > 逐元素求和和逐元素乘积之间的差异

问题描述

我对 Julia 很陌生,所以我要问一个非常基本的问题。我理解点 (.) 的逻辑来进行元素操作但是,我对这段非常简单的代码感到困惑

array_try_op = [1, 2, 3, 4]
array_sum2 = array_try_op .+ 2
array_sum2_wrong = array_try_op + 2
array_prod2 = array_try_op .* 2
array_prod2_wrong = array_try_op * 2

确实,当我尝试执行时,array_sum2_wrong = array_try_op + 2我正确地收到一条错误消息,但相反array_prod2_wrong = array_try_op * 2不返回任何错误消息,并且实际上返回相同的结果array_prod2 = array_try_op .* 2

为什么会这样?

标签: syntaxjuliaarray-broadcasting

解决方案


因为按标量缩放是向量空间上定义明确的(也是必需的!)操作,s 被视为。另一方面,向量和标量之间的加法实际上没有意义,除非您想要广播行为——点表示。当然,标量的缩放和广播乘法是一致的。Array


推荐阅读