Search code examples
matlabmatrixmultidimensional-arraymatrix-multiplication

Dot product between two 5D matrices in Matlab


I'm trying to do the dot product between two 3x3x3x3x3 matrices in Matlab. Following the Matlab documentation about the dot function for multidimensional arrays, I expect the result of this:

A=2*ones(3,3,3,3,3);

B=3*ones(3,3,3,3,3);

dot(A,B,1);

to be a 4D matrix, because the dot product between each column of A and each column of B reduces the resulting matrix by a dimension. Instead, this is the output in the workspace:

workspace

I can't understand this, why does it happen?

Thank you in advance.


Solution

  • The answer is a 5-D double because you've collapsed the first dimension. So the first dimension is now of size 1, and the 2nd-5th dimensions are of size 3 as expected.

    You can see this by using size

    A = 2 * ones(3,3,3,3,3);
    B = 3 * ones(3,3,3,3,3);
    
    C = dot(A,B,1);
    
    size( C ); % = [1 3 3 3 3]