syntax - 元素明智求和与元素明智乘积之间的差异

标签 syntax julia array-broadcasting

我对 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

相同的结果

为什么会出现这种情况?

最佳答案

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

关于syntax - 元素明智求和与元素明智乘积之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61982439/

相关文章:

syntax - 如何在~/.lldbinit中编写多行宏?

julia - Pluto.jl 中的打印语句

python - NumPy 广播以提高点积性能

python - 乘以 numpy 中包含图像的张量

swift - 错误 : Cannot subscript a value of type 'X' with . ..'

getElementById() 的 Javascript 速记语法不起作用

c - C调试宏的奇怪语法

julia - Julia 中如何锁定变量类型?

distribution - julia语言三角分布参数化

python - 如何将 np.argmax 合并到广播中以替换给定的 for 循环代码(如果可能)