필터 지우기
필터 지우기

Multiply 4D array with 2D array without a for loop

조회 수: 3 (최근 30일)
Julian Büchel
Julian Büchel 2017년 11월 20일
답변: KL 2017년 11월 20일
I want to compute this:
for i=1:4
f = f+ norm(reshape(i2k(S(:,:,1,i) .* C,[1,2]) - b(:,:,1,i),[sz^2 1]) ,2)^2;
end
Without a for loop. Because we square the norm we can do that:
sum(abs(i2k(S(:,:,1,:) .* C,[1,2])-b(:,:,1,:)).^2);
But I get an error when I do this
S(:,:,1,:) .* C,[1,2]
Can somebody tell me how this is done correctly?

답변 (1개)

KL
KL 2017년 11월 20일
Try this,
bsxfun(@times,S(:,:,1,:),C)
but remember, the result you'll get as a 3D matrix.

카테고리

Help CenterFile Exchange에서 Multidimensional Arrays에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by