matrix multiplication
7 ビュー (過去 30 日間)
古いコメントを表示
Hello,
I m wrinting a code for itertaive closest point and i got this error
??? Error using ==> mtimes
Inner matrix dimensions must agree.
RR=V * U';
V and U are two matrix in diffent size what do you think ?
0 件のコメント
採用された回答
Wayne King
2011 年 10 月 2 日
It's just telling you that the two matrices are not conformable for multiplication. The number of columns in V has to match the number of rows in U'
RR = randn(10,10)*(randn(2,10))'; % is ok
RR = randn(10,10)*(randn(10,12))'; % is not
2 件のコメント
Wayne King
2011 年 10 月 3 日
.* is element by element multiplication so,
x = randn(10,1);
y = randn(10,1);
z = x.*y; % this is ok -- multiply x and y element by element
but
x*y % errors
その他の回答 (2 件)
Rick Rosson
2011 年 10 月 2 日
Please try the following:
[M,N] = size(V);
[P,Q] = size(U');
if N==P
fprintf('ok\n\n');
else
fprintf('error\n\n');
end
0 件のコメント
Rick Rosson
2011 年 10 月 3 日
Using * by itself will perform matrix multiplication, whereas using .* will perform element-by-element multiplication.
- For matrix multiplication, e.g. A*B, the number of columns in A must equal the number of rows in B.
- For element-by-element multiplication, e.g. A.*B, the size and shape of both A and B must be exactly the same. In other words, if A is M x N, then B must also be M x N.
- For more information, please see: Arithmetic Operators
- You can use the size function to compute the size and shape of any given array.
- You can use the assert function to test for the truth of a logical expression. For example:
assert(size(A,2) == size(B,1), ...
'The inner dimensions of A and B do not agree.');
HTH.
Rick
参考
カテゴリ
Help Center および File Exchange で Logical についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!