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

4 次查看(过去 30 天)
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

回答(2 个)

David Hill
David Hill 2020-9-16
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 个评论
Jerico Yabut
Jerico Yabut 2020-9-16
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."

请先登录,再进行评论。


VBBV
VBBV 2021-12-9
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

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by