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

 채택된 답변

Steven Lord
Steven Lord 2020년 4월 11일

1 개 추천

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.

추가 답변 (1개)

James Tursa
James Tursa 2020년 4월 11일
편집: James Tursa 2020년 4월 11일

0 개 추천

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.

카테고리

도움말 센터File Exchange에서 Get Started with MATLAB에 대해 자세히 알아보기

제품

태그

아직 태그를 입력하지 않았습니다.

질문:

2020년 4월 11일

댓글:

2020년 4월 11일

Community Treasure Hunt

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

Start Hunting!

Translated by