Matlab is inconsistent when raising numbers to the zero'th power:

1 view (last 30 days)
In matlab R2015a
-1^0
returns
-1
but
a = -1 ; a^0
returns
1
wolfram alpha agrees that -1^0 = -1, but I believe that everybody else says that x^0 = 1, for all x not equal to 0.
The -1^0 = -1 appears to be a bug? But it's hard to believe that Mathematica has exactly the same bug!

Accepted Answer

John D'Errico
John D'Errico on 8 Mar 2016
What you apparently misunderstand is the idea of operator precedence.
There is a difference between these two operations:
-1^0
ans =
-1
and
(-1)^0
ans =
1
What you need to recognize is that ^ operates before the unary minus operator. Once you recognize that, you recognize it is not a bug, but a design question, and one that makes some sense.
You are not the first person to trip over it though. I've seen this question asked before. :)
  2 Comments
Leo Simon
Leo Simon on 8 Mar 2016
Thanks! Obvious ex post. Expected it had been asked before, but I searched the forum and found nothing.
Stephen23
Stephen23 on 8 Mar 2016
Edited: Stephen23 on 8 Mar 2016
Why search the forum? Once again actually reading the documentation would have been a good step:

Sign in to comment.

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!