Clear Filters
Clear Filters

Why does this matrix multiplication work?

1 view (last 30 days)
Philipp
Philipp on 10 Jun 2013
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
David Sanchez on 11 Jun 2013
What's wrong with it?
a=rand(1,3);
b=rand(3,3);
c=a*b;
  3 Comments
Iain
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
Philipp on 11 Jun 2013
Exactly Andrew, thats what I meant. @lain: But the output of the gain block is not a 3x1 Matrix but again 1x3. I guess it transforms it back after the multiplication. But why does that happen? And in which cases does it do that?
I don't find that very logical..

Sign in to comment.

Categories

Find more on Entering Commands 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!