Can you tell me a subrutine to multiplication multidimensional matrix in Matlab?
No products are associated with this question.
ADDED on agustin darrosa's comment [EDIT] ;)
if numel(a) == numel(b) c1 = a - permute(b,[2 1 3 4]); c2 = permute(a,[2 1 3 4]) - b; end
You haven't given an example so we don't really know what you want yet. Maybe it is this, which does a matrix multiply on the first two dimensions:
A = rand(2,3,2,2); B = rand(3,2,2,2);
% A simple loop: R = zeros(2,2,2,2); for i1 = 1:2 for i2 = 1:2 R(:, :, i1, i2) = A(:, :, i1, i2) * B(:, :, i1, i2); end end
Is this what you want? If so, note that this is actually a list of DOT products only. Then reshape B to a [3 x 8] array, A to a [8 x 3] (which needs a permute(A, [1,3,4,2]) also) and multiply these matrices. Finally a reshaping give the same R.
Unfortunately I do not dare to post the code, because I do not have Matlab for testing at the moment.