Возвести целые числа в степени отрицательного целого в Python 2,7 - PullRequest
0 голосов
/ 19 июня 2020

Мне очень трудно перевести этот код Matlab в Python.

Я покажу вам свои усилия.

Это код Matlab

Sigma=BW1/(2*(2*(-log(10^(att_bw/10)))^(1/Order))^(1/2))

Теперь я попытался использовать оператор мощности Python, как я изучал ранее этим утром **

Мой код

BW1 = np.array([100])
att_bw = np.array([-3])
Order = np.array([1])
Sigma = BW1/(2*(2*(-np.log(10**(att_bw[0]/10)))**(1/Order))**(1/2))

Однако он говорит, что, к сожалению, он не может обрабатывать отрицательные мощности

Результат для сигмы должен быть 42.539

РЕДАКТИРОВАТЬ: кажется, мой код отлично работает в Python 3. Однако я застрял с Python 2.7. Так есть ли простой способ его портировать?

1 Ответ

1 голос
/ 22 июня 2020

В python2 вам нужно убедиться, что вы используете числа с плавающей запятой. Чтобы сделать их такими, добавьте . после каждого целого числа, которое теперь есть в вашей формуле.

Вот так:

import numpy as np

BW1 = np.array([100])
att_bw = np.array([-3])
Order = np.array([1])
Sigma = BW1/(2.*(2.*(-np.log(10.**(att_bw[0]/10.)))**(1./Order))**(1./2.))
print Sigma

Вывод

[42.53892736]
...