Azzera filtri
Azzera filtri

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

3 visualizzazioni (ultimi 30 giorni)
Julian Büchel
Julian Büchel il 20 Nov 2017
Risposto: KL il 20 Nov 2017
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?

Risposte (1)

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

Categorie

Scopri di più su Multidimensional Arrays in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by