What am I doing wrong? Matrix operators

16 visualizaciones (últimos 30 días)
Kevin Carty
Kevin Carty el 22 de Feb. de 2020
Comentada: Preet Talati el 3 de Feb. de 2021
function surfaceArea = surfaceBalloon(Volume,M)
% Your code goes here %
radius = ((3*Volume)./((2+M)*pi))^1/3;
surfaceArea = pi*radius^2.*(2+sqrt(1+M^2));
end
What is wrong with my code? It says:
Error using ^ (line 51)
Incorrect dimensions for raising a matrix to a power. Check that the
matrix is square and the power is a scalar. To perform elementwise
matrix powers, use '.^'.
Error in surfaceBalloon (line 5)
surfaceArea = pi*radius^2.*(2+sqrt(1+M^2));
I thought you didn't have to use dot operators unless you are multiplying, dividing, or raising two matricies. I am raising the radius variable to 1/3 which is a scalar value. Am i missing something?
  2 comentarios
Stephen23
Stephen23 el 22 de Feb. de 2020
Editada: Stephen23 el 22 de Feb. de 2020
"Am i missing something?"
The difference between matrix and array operations.
"I thought you didn't have to use dot operators unless you are multiplying, dividing, or raising two matricies. I am raising the radius variable to 1/3 which is a scalar value."
I don't think that rule-of-thumb is correct. Instead:
  • use matrix operations when doing linear algebra,
  • otherwise use array operations.
Because, as the documentation makes clear, matrix operations apply the rules of linear algebra.
Preet Talati
Preet Talati el 3 de Feb. de 2021
You need to add a dot operator to all the exponent calculations and your 1/3 needs to be (1/3).

Iniciar sesión para comentar.

Respuestas (1)

Star Strider
Star Strider el 22 de Feb. de 2020
If you want to raaise the elements of a matrix to a power, use element-wise exponentiation with the dot operator: .^ and see: Array vs. Matrix Operations for details.
Matrix exponentiation (and several other operattions) are only defined for square matrices. See the Wikipedia article on the Cayley-Hamilton theorem for that discussion.

Categorías

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

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by