필터 지우기
필터 지우기

Why does this matrix multiplication work?

조회 수: 1 (최근 30일)
Philipp
Philipp 2013년 6월 10일
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!

답변 (1개)

David Sanchez
David Sanchez 2013년 6월 11일
What's wrong with it?
a=rand(1,3);
b=rand(3,3);
c=a*b;
  댓글 수: 3
Iain
Iain 2013년 6월 11일
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 2013년 6월 11일
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..

댓글을 달려면 로그인하십시오.

Community Treasure Hunt

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

Start Hunting!

Translated by