# Inner Matrix Dimensions Must Agree

1 view (last 30 days)
shawin on 1 Sep 2018
Edited: KALYAN ACHARJYA on 4 Sep 2018
I have a matrix of 119 x 1 and Z is 119 x 119
should multiply it by a diagonal matrix of 2 x 2:
W = [0.12 0 ;
0 0.28];
d=sqrt(W*X'*Z*X*W);
I am receiving an error which is:
Inner Matrix Must agree!!

Image Analyst on 1 Sep 2018
That can never work. If all you have is dimensions of 119 and 1, then there is no way you can do anything to get 2 rows or 2 columns, no matter what you do or how you manipulate (transpose) them. The result will always have dimensions of 119 and/or 1 - never 2. Therefore, you will never be able to right multiply, or left multiply, by a 2-by-2 matrix W.

shawin on 1 Sep 2018
If we move row by row, what I mean multiply each row by a 2x2 matrix ?
Image Analyst on 1 Sep 2018
A row is a 1-by-N array, and that cannot be multiplied by a 2-by-2 matrix. If you have two matrices, an a-by-b called m1, and a c-by-d matrix called m2, then to do m1*m2 you must have b equal c, and if you do m2*m1 you must have d equal a. That's just basic matrix algebra rules.

KALYAN ACHARJYA on 1 Sep 2018
Edited: KALYAN ACHARJYA on 4 Sep 2018
• Matrix multiplication rows of the first matrix should be equal columns of the second matrix
• you have considering one matrix is 2x2 order, how can you do the multiplication with 1x119 or 119x119
x=rand(119,1); )%Order 119x1
z=rand(119,119); %Order 119x119
w=[0.12 0; 0 0.28]; %Order 2x2
%x' order 1x119
d=sqrt(w.*x'*z.*x.*w); %This does not work, check the order of all Matrixes
Learn Matrix multiplication here

Show 1 older comment
KALYAN ACHARJYA on 1 Sep 2018
@Image Analyst yes sir it does not work
Stephen Cobeldick on 4 Sep 2018
"Matrix multiplication rows of the first matrix should be equal columns of the second matrix or vice versa"
The number of columns of the first matrix must be equal to the number of rows of the second matrix. There is certainly no "vice versa" involved.
KALYAN ACHARJYA on 4 Sep 2018
Yes @Stephen Cobeldick, Thanks for pointing the error