我真的对朱莉娅(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
被视为。另一方面,除非要广播行为(如点所示),否则向量和标量之间的加法实际上是没有意义的。当然,缩放和广播乘法与标量是重合的。