Why can't I multiply two arrays using the '*' operator?

25 visualizaciones (últimos 30 días)
Sara Jones
Sara Jones el 20 de Oct. de 2018
Respondida: Star Strider el 20 de Oct. de 2018
Why is it necessary to use the .* operator to multiply two arrays of the same size? For example, if I have array1 = [1,2,3] and array2 [4,5,6] which both have size of 3; why is it not possible to simply use '*'?

Respuesta aceptada

Star Strider
Star Strider el 20 de Oct. de 2018
Because the dot operator does element-wise multiplication (and division and exponentiation). These are termed array operations in MATLAB.
If you do not use the dot operator, you are using standard linear algebra matrix operations, and those require that you follow the rules for array operations from linear algebra.
array1 = [1,2,3];
array2 = [4,5,6];
Result1 = array1' * array2; % 3x3 Matrix (Matrix Multiplication)
Result2 = array1 * array2'; % Scalar (Dot Product)
Result3 = array1 .* array2; % 1x3 (Element-Wise Multiplication)
See the documentation on Array vs. Matrix Operations (link) for details.

Más respuestas (0)

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by