What is the most efficient way of matrix-multiplying along a page (2d plane) of a multidimensional matrix. Speed is important here as this operation will be in the objective-function of a calibration.
Specifically I have a 4d matrix of dimension [m,n,p,2], and I want to matrix-multiply it by a [2x1] vector
So conceptually I need
Taking for example:
b = rand(5,3,4,2);
y0 = [0.1;0.2]; y0 = reshape(y0,[1,1,1,2]);
I should end up with a 3d matrix of size [5,3,4]
I could, of course, dot-multiply by a repmatted y0 and then sum along the 4d but is this really the most efficient?
y0 = y0(ones(5,1,1),ones(1,3,1),ones(1,1,4),:);
All the best