2014-02-12 4 views
4

줄리아에서 비교적 단순해야한다고 생각하는 것을하려고하지만이 문제에 대한 언급을 찾을 수 없습니다.Julia의 배열 곱셈

기본적으로 내가 가지고있는 것은 mxn 행렬과 nx1 벡터입니다. 내가 뭘하고 싶은데요, 요소가있는 행렬에 대한 벡터 곱하지만 행렬의 모든 요소가 곱해 지도록 축을 따라 곱하는 것입니다. numpy에서

예를 들어이 될 것이다 : 줄리아에서이 작업을 수행 할 수있는 방법이

np.multiply(array, vector) 

있습니까?

난 그냥 배열 채우기 위해 벡터를 확장 시도 :

projection = 1:size(matrix)[1] 
weight_change = hcat(map(x -> vector, projection)) 

을하지만 내가 정말 필요로하는 것은 의미 단지 Array{Float64, 2}입니다 Array{Array{Float64, 2}, 2}의 유형, 뭔가를 얻을 수 있다는 elementwise 곱셈은하지 않습니다 정말 일합니다.

내 접근 방식을 수정하거나 내 도청 솔루션을 해결할 방법이 있습니까?

+0

'np.multiply (배열, 벡터, 축 = 0)'아니다 유효'numpy'입니까? – DSM

+0

@DSM 오, 도핑, 너는 완전히 맞다. 축 요소를 가지지 않는다. 그냥 자동으로한다. –

답변

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 
+0

나는 ... 이것이 내 마음이 간 첫 번째 장소가 아니라는 것을 조금 당혹 스럽다.하지만 내 질문에 답해 주셔서 대단히 감사합니다. –