배열을 A
및 B
요소로 곱하고 첫 번째 차원의 합계를 계산 한 다음 결과를 C
으로 반환해야합니다. A
은 N
-by-M
-by-L
매트릭스입니다. B
은 N
-by-1
-by-L
매트릭스입니다. N
및 M
은 30
보다 작지만 L
은 매우 큽니다. 내 코드 :matlab에서이 루프를 더 빠르게 만드는 방법
C=zeros(size(B));
parfor i=1:size(A,2)
C(i,1,:) = sum(bsxfun(@times, A(:,i,:), B(:,1,:)), 1);
end
문제는 코드가 느리며 누구나 코드를 빨리 작성할 수 있습니까? 고맙습니다.
그것은 요소 경우 비 공역 전치을''.'''해야한다 복잡하다. –
실제로 트랜스 포즈는 3D 행렬에 정의되어 있지 않으므로 트랜스 포즈는 전혀 필요하지 않습니다. Permute가 더 좋은 아이디어이며, 성능에 전혀 영향을 미치지 않는 것 같습니다. – MrAzzaman