Error using vertcat Dimensions of arrays being concatenated are not consistent.

4 views (last 30 days)
matrix1 = input("matrix 1 is \n");
matrix2 = input("matrix 2 is \n");
[M, N] = size(matrix1);
[P, Q] = size(matrix2');
if N == P
X = matrix1*matrix2
disp(X)
else
fprintf("Matrix multiplication can't be done.")
end
This is my code and we are tasked to do simple multiplication of matrices. This works fine in 2x2 or 1x1 or even 16x16 matrices but when it comes to 1x3 or 3x4 or 5x7, it doesnt work anymore. Thank you for answering

Answers (2)

David Hill
David Hill on 16 Sep 2020
matrix1 = input("matrix 1 is \n");
matrix2 = input("matrix 2 is \n");
[M, N] = size(matrix1);
[P, Q] = size(matrix2);
if N == P
X = matrix1*matrix2;
disp(X)
else
fprintf("Matrix multiplication can't be done.")
end
  1 Comment
Jerico Yabut
Jerico Yabut on 16 Sep 2020
I tried this however it doesn't work at 1x3 or 4x1 or 5x7. It only works on let's just say 4x4 or 2x2 or 10x10.it says that "Error using vertcat Dimensions of arrays being concatenated are not consistent."

Sign in to comment.


VBBV
VBBV on 9 Dec 2021
matrix1 = rand(1,3)%input("matrix 1 is \n"); This is example of 1 x3 matrix
matrix1 = 1×3
0.7567 0.2314 0.3456
matrix2 = rand(3,3)%input("matrix 2 is \n");
matrix2 = 3×3
0.2531 0.3500 0.0379 0.0466 0.7056 0.3046 0.0829 0.0319 0.9818
[M, N] = size(matrix1);
[P, Q] = size(matrix2);
if N == P
disp('The product is ')
X = matrix1.*matrix2
else
fprintf("Matrix multiplication can't be done.")
end
The product is
X = 3×3
0.1915 0.0810 0.0131 0.0353 0.1633 0.1053 0.0627 0.0074 0.3393

Community Treasure Hunt

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

Start Hunting!