Why does this matrix multiplication work?
Show older comments
Hi,
I had a look at the Simmechanics Demo mech_bouncing_ball.mdl because I want to find out how to model ground.
In the subsystem that calculates the force that acts on the ball when hitting the floor is a matrix multiplication.
It is calculated with a Gain-Block. The input is a 1x3 Matrix, the Gain Parameter is [0 0 0;0 0 0;0 0 -ball.pengain] and the output is again a 1x3 matrix. The Setting of the calculation is "Matrix(K*u)". The Help says: "The input and gain are matrix multiplied with the input as the second operand."
I dont't understand how this works. How is it possible that a 3x3 matrix is multiplied with a 1x3 matrix? When I try that in the comand window it says that "Inner matrix dimensions must agree." Why does it work with the Gain Block?
Would be great if someone could help me. I really don't understand that. Thank you very much!
Answers (1)
David Sanchez
on 11 Jun 2013
What's wrong with it?
a=rand(1,3);
b=rand(3,3);
c=a*b;
3 Comments
Andrew Reibold
on 11 Jun 2013
I believe the question lies in the part where it says specifically that the input is the second operand which would make it
a=rand(1,3);
b=rand(3,3);
c=b*a;
Iain
on 11 Jun 2013
Its using the vector, as a column. eg
A = [0 1 0; 1 0 0; 0 0 1];
B = [2 3 4];
C = A*B';
C = [3; 2; 4]
Philipp
on 11 Jun 2013
Categories
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!