Borrar filtros
Borrar filtros

What controls of this error 'Inner matrix dimensions must agree'?

2 visualizaciones (últimos 30 días)
Sandi J
Sandi J el 13 de Sept. de 2018
Comentada: Dennis el 13 de Sept. de 2018
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.
  2 comentarios
Dennis
Dennis el 13 de Sept. de 2018
s is a vector of length 100, you want to multiply this vector with a vector of length 6.
What result do you expect?
Matt J
Matt J el 13 de Sept. de 2018
You probably set 's' to a scalar value in some situations. Only then will the code run without error.

Iniciar sesión para comentar.

Respuesta aceptada

Stephan
Stephan el 13 de Sept. de 2018
Editada: Stephan el 13 de Sept. de 2018
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 '.*'.
Read more in the documentation for Matrix operations, where this behavior is described in detail.
Best regards
Stephan
  3 comentarios
Stephan
Stephan el 13 de Sept. de 2018

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
Dennis el 13 de Sept. de 2018

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.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by