向量化乘法:逐个将Julia中的两个向量相乘

dme*_*meu 1 arrays vectorization julia vector-multiplication

我决定潜入朱莉娅,撞墙。快速。

我正在尝试复制一个简单的操作,该操作在python numpy中如下

a = numpy.array([1,2,3])
b = numpy.array([1,2,3])
a*b
[output]: [1,4,9]
Run Code Online (Sandbox Code Playgroud)

换句话说,“ [1,4,9]”是我期望的输出。

我在Julia中尝试了以下方法:

a = [1,2,3]
b = [1,2,3]
a*b
[output]: MethodError: no method matching *(::Array{Int64,1}, ::Array{Int64,1})
Run Code Online (Sandbox Code Playgroud)

或尝试明智之后:

a = [1,2,3]
b = [1,2,3]'
a*b
[output]: 3×3 Array{Int64,2}:
 1  2  3
 2  4  6
 3  6  9
Run Code Online (Sandbox Code Playgroud)

我知道这似乎是一个基本问题,但我的Google搜寻似乎不是我今天最好的,和/或stackoverflow可以使用此问题和答案;)

感谢您的帮助和指点!

最好

Bil*_*ill 5

朱莉娅需要一个。在运算符或函数调用的前面,表示您要进行元素乘法,而不要对向量作为单位进行运算。这称为广播数组:

 julia> a = [1,2,3]          
 3-element Array{Int64,1}:   
 1                          
 2                          
 3                          

 julia> b = [1,2,3]          
 3-element Array{Int64,1}:   
 1                          
 2                          
 3                          

 julia> a .* b               
 3-element Array{Int64,1}:   
 1                          
 4                          
 9                          
Run Code Online (Sandbox Code Playgroud)