Julia中的数组乘法

Sla*_*off 8 arrays types multiplication julia

我正在尝试做一些我认为在朱莉娅应该相对简单的事情,但我似乎无法找到任何提及这个问题.

基本上我得到的是一个mxn矩阵和一个nx1向量.我想要做的是将矢量与矩阵相乘,即元素,但沿着轴,使矩阵的每个元素相乘.

numpy比如,这将是:

np.multiply(array, vector)
Run Code Online (Sandbox Code Playgroud)

朱莉娅有什么办法吗?

我试着扩展矢量来填充数组:

projection = 1:size(matrix)[1]
weight_change = hcat(map(x -> vector, projection))
Run Code Online (Sandbox Code Playgroud)

但是Array{Array{Float64, 2}, 2},当我真正需要的只是Array{Float64, 2},这就产生了一种类型的东西,这意味着元素乘法不会真正起作用.

有没有办法修复我的方法或补救我的错误解决方案?

Ste*_*ski 11

你正在寻找.*元素方面的广播乘法运算符:

julia> A = [ i + j*im for i=1:3, j=1:4 ]
3x4 Array{Complex{Int64},2}:
 1+1im  1+2im  1+3im  1+4im
 2+1im  2+2im  2+3im  2+4im
 3+1im  3+2im  3+3im  3+4im

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

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

julia> A .* w
3x4 Array{Complex{Int64},2}:
 1+1im  1+2im  1+3im   1+4im
 4+2im  4+4im  4+6im   4+8im
 9+3im  9+6im  9+9im  9+12im

julia> A .* v'
3x4 Array{Complex{Int64},2}:
 1+1im  2+4im  3+9im   4+16im
 2+1im  4+4im  6+9im   8+16im
 3+1im  6+4im  9+9im  12+16im
Run Code Online (Sandbox Code Playgroud)