Cody

# Problem 2237. Mmm! Multi-dimensional Matrix Multiplication

Solution 576735

Submitted on 8 Feb 2015
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

### Test Suite

Test Status Code Input and Output
1   Pass
%% case 1 A = 1; B = 2; C = mtimesm(A,B); C_correct = 2; assert(isequal(C,C_correct))

2   Fail
%% case 2 A = rand(2,3); B = rand(3,4); C = mtimesm(A,B); C_correct = A*B; assert(isequal(C,C_correct))

Error: Inner matrix dimensions must agree.

3   Pass
%% case 3 A = rand(2,3); B = 2; C = mtimesm(A,B); C_correct = 2*A; assert(isequal(C,C_correct))

4   Fail
%% case 4 A = rand(2,3,2); B = rand(3,4,2); C = mtimesm(A,B); C_correct = cat(3,A(:,:,1)*B(:,:,1),A(:,:,2)*B(:,:,2)); assert(isequal(C,C_correct))

Error: Transpose on ND array is not defined. Use PERMUTE instead.

5   Fail
%% case 5 A = rand(2,3,3); B = rand(3,4); C = mtimesm(A,B); C_correct = cat(3,A(:,:,1)*B,A(:,:,2)*B,A(:,:,3)*B); assert(isequal(C,C_correct))

Error: Inputs must be 2-D, or at least one input must be scalar. To compute elementwise TIMES, use TIMES (.*) instead.

6   Fail
%% case 6 A = rand(4,3,1,2); B = rand(3,2,2); C = mtimesm(A,B); C_correct(:,:,1,1) = A(:,:,1,1)*B(:,:,1); C_correct(:,:,1,2) = A(:,:,1,2)*B(:,:,1); C_correct(:,:,2,1) = A(:,:,1,1)*B(:,:,2); C_correct(:,:,2,2) = A(:,:,1,2)*B(:,:,2); assert(isequal(C,C_correct))

Error: Transpose on ND array is not defined. Use PERMUTE instead.

7   Fail
%% case 7 A = rand(4,3,1,2); B = rand(3,2,1,1,2); C = mtimesm(A,B); C_correct(:,:,1,1,1) = A(:,:,1,1)*B(:,:,1,1,1); C_correct(:,:,1,1,2) = A(:,:,1,1)*B(:,:,1,1,2); C_correct(:,:,1,2,1) = A(:,:,1,2)*B(:,:,1,1,1); C_correct(:,:,1,2,2) = A(:,:,1,2)*B(:,:,1,1,2); assert(isequal(C,C_correct))

Error: Transpose on ND array is not defined. Use PERMUTE instead.