我正在努力做一些我认为在朱莉娅应该相对简单的事情,但我似乎无法找到任何提及这个问题。
基本上我得到的是mxn
矩阵和nx1
向量。我想要做的是将向量与矩阵相乘,即元素,但沿着轴,使矩阵的每个元素相乘。
例如在numpy
中,这将是:
np.multiply(array, vector)
朱莉娅有没有办法做到这一点?
我尝试扩展矢量以填充数组:
projection = 1:size(matrix)[1]
weight_change = hcat(map(x -> vector, projection))
但是当我真正需要的只是Array{Array{Float64, 2}, 2}
时,会产生类型为Array{Float64, 2}
的东西,这意味着元素乘法不会真正起作用。
有没有办法修复我的方法或补救我的错误解决方案?
答案 0 :(得分:9)
您正在寻找.*
元素,广播乘法运算符:
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