MATLAB Answers

Negative Numbers to the power of 0

17 ビュー (過去 30 日間)
Simon Hunter
Simon Hunter 2020 年 11 月 18 日
コメント済み: TADA 2020 年 11 月 19 日
Hi All,
New-again matlab user after a decade away; having trouble with raising a negative number to the power 0.
I recognise that:
  • (-2)^0 = 1 and
  • -2^0 = -1.
In my code, I am trying to populate a 5x5, row by row filling the columns with elements of one 1x5 row vector to the power of another 1x5 vector.
I have written a very basic, and probably inefficient way of doing this with two for loops, but when it comes to raising a negative number to the power 0 and storing it, I get 1 as opposed to what I think is correct; -1.
I presume Im missing something very basic but would really appreciate any help; Thank you!
k = [0:4]
x = [-2.0 3.0 9.0 2.0 25.0]
A = ones(5,5);
for row = 1:length(k)
for col = 1:length(k)
A(row,col) = x(col)^k(row);
end
end
This is what I get: But I think the top left should be -1 since -2^0 = -1
1 1 1 1 1
-2 3 9 2 25
4 9 81 4 625
-8 27 729 8 15625
16 81 6561 16 390625
  15 件のコメント
Bruno Luong
Bruno Luong 2020 年 11 月 18 日
What a mess.

サインインしてコメントする。

採用された回答

Ameer Hamza
Ameer Hamza 2020 年 11 月 18 日
編集済み: Ameer Hamza 2020 年 11 月 18 日
You can do it without for-loop
k = 0:4;
x = [-2.0 3.0 9.0 2.0 25.0];
A = x.^(k.')
Also, x(col)^k(row) is equivalent to (-2)^0, not -2^0.
For example, what you you expect the output of following code to be
x = -2;
y = x^2
should y be 4 or -4?
  1 件のコメント
Simon Hunter
Simon Hunter 2020 年 11 月 18 日
Thank you!

サインインしてコメントする。

その他の回答 (1 件)

TADA
TADA 2020 年 11 月 18 日
編集済み: TADA 2020 年 11 月 18 日
Any arithmetic operation performed on variables will treat the variables as if it was wrapped with parentheses.
Try this simple example:
x = -2;
y = x^0
y = 1
In my opinion, this is the correct result, which takes into account the proper order of operations, but if you really want that to keep the original sign, you can multiply your result by the sign of the original number:
y = sign(x) * x^0
y = -1
  3 件のコメント
TADA
TADA 2020 年 11 月 19 日
Good point

サインインしてコメントする。

Community Treasure Hunt

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

Start Hunting!

Translated by