vector multiplication .* vs *

조회 수: 263 (최근 30일)
Omar A Jimenez
Omar A Jimenez 2017년 11월 19일
답변: John Keevil 2022년 2월 18일
I have these two vectors,
u= [ 1 2 -1 2 1]
v=[ -1 0 2 0 1]
why does v*u give me an error, whilst u*v' give me a -2, which is the result of a scalar multiplication?
u and v have the same size, so shouldn't v*u go through?
Thanks in advance.
  댓글 수: 1
Stephen23
Stephen23 2017년 11월 19일
편집: Stephen23 2017년 11월 19일
@Omar A Jiminez: knowing the difference between matrix operations and element-wise operations is critical for being able to use MATLAB properly: not just multiplication, but transpose, division, and power too. You need to read the MATLAB documentation:

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

채택된 답변

Walter Roberson
Walter Roberson 2017년 11월 19일
v*u is algebraic matrix multiplication, for which the rule is that for an (M x N) * (P x Q) operation, that N must equal P and the output size is M x Q -- so (M x N) * (N x Q) giving M x Q. You have (1 x 5) * (1 x 5) which violates that rule. When you take u * v' then you have (1 x 5) * (5 x 1) giving 1 x 1.
v.*u would go element by element, result(K) = v(K) * u(K) which would be 1 x 5 result.

추가 답변 (2개)

Shomari Edwards
Shomari Edwards 2019년 8월 29일
24.5 + 64/3.52 + 8.3 · 12.53
3 76.428/15
  댓글 수: 1
Walter Roberson
Walter Roberson 2019년 8월 29일
It is not clear what you are trying to convey here?

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


John Keevil
John Keevil 2022년 2월 18일
The simple answer to the question is:-
u= [ 1 2 -1 2 1] and v=[ -1 0 2 0 1] are both row vectors. You cannot matrix multiply them because the number of rows and columns are not compatible for matrix multiplication. To multiply u*v by matrix multiplication requires the number of rows of u to equal the number of columns of v, which it does not since u has one row and v has 5 columns. To correct that, you have to transpose v, then it has one column. v' is the transpose of v. This why u*v' works.

카테고리

Help CenterFile Exchange에서 Matrix Indexing에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by