What controls of this error 'Inner matrix dimensions must agree'?
조회 수: 2 (최근 30일)
이전 댓글 표시
Sometimes I use these steps but without error
N=5;
s=linspace(0,2);
C=exp(s*(0:5));
Why sometimes other times this error appears ? Inner matrix dimensions must agree.
채택된 답변
Stephan
2018년 9월 13일
편집: Stephan
2018년 9월 13일
When using * in Matlab with non-scalars, matlab follows the calculation rules of linear algebra:
>> A = randi(10,3,2)
A =
4 4
2 6
8 2
>> B = randi(10,2,5)
B =
7 7 8 1 10
3 7 5 3 2
>> C = A * B
C =
40 56 52 16 48
32 56 46 20 32
62 70 74 14 84
>> whos A B C
Name Size Bytes Class Attributes
A 3x2 48 double
B 2x5 80 double
C 3x5 120 double
Multiply a 3x2 Matrix with a 2x5 is possible and results in a 3x5 Matrix. If you try the same "backwards" it will give the error:
>> D = B * A
Error using *
Incorrect dimensions for matrix multiplication. Check that the number of columns in the first matrix
matches the number of rows in the second matrix. To perform elementwise multiplication, use '.*'.
Best regards
Stephan
댓글 수: 3
Stephan
2018년 9월 13일
yes, but you asked for an explanation why sometimes you get the "inner dimensions error" and sometimes not - that was what i tried to answer.
Dennis
2018년 9월 13일
This will not return an error either:
N=5; s=linspace(0,2); C=exp(s'*(0:5));
The question is if this 'solves the problem'. It might be a way to calculate something that is not result that you want.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!