I am getting two different answers in MATAB 2017a. If I compute it directly in the Command Window vs assigning the variables x,y, I get a complex answer?
-50.8478 ^ -1.017
ans =
-0.0183959070209519
K>> x = -50.8478; y = -1.017
K>> x^y
ans =
-0.0183696777893977 + 0.000982004601423454i

 Akzeptierte Antwort

Steven Lord
Steven Lord am 11 Apr. 2020

1 Stimme

That's correct. The unary minus operator (before 50.8478) is at precedence level 4. The matrix power operator with unary minus (between 50.8478 and 1.017) is at precedence level 3. So:
-50.8478 ^ -1.017
is equivalent to:
-(50.8478^-1.017)
The expression inside the parentheses is real.
When you use variables:
x = -50.8478;
y = -1.017
x^y
that is equivalent to:
(-50.8478)^(-1.017)
which gives a complex result.

Weitere Antworten (1)

James Tursa
James Tursa am 11 Apr. 2020
Bearbeitet: James Tursa am 11 Apr. 2020

0 Stimmen

Operator precedence
>> -50.8478 ^ -1.017
ans =
-0.0184
>> (-50.8478) ^ -1.017
ans =
-0.0184 + 0.0010i
The ^ operator has higher precedence than the - operator when typed in at the command line.

Kategorien

Mehr zu Get Started with MATLAB finden Sie in Hilfe-Center und File Exchange

Produkte

Tags

Noch keine Tags eingegeben.

Community Treasure Hunt

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

Start Hunting!

Translated by