我正在尝试将 MATLAB 脚本转换为 Python。我有一个工作代码,但它非常笨重,我已将计算行粘贴到每个 if 和 elif 行下方以使其工作。我希望得到任何建议来使这段代码更加优雅
脚本应该:
我当前的代码如下,我发布了 S 的随机公式,因为我的实际计算更复杂,不想进一步混淆人们。
import numpy as np
fp = 0.097
for j in range(1,max(f.shape)):
if f[j]<fp:
sigma = 0.07
d = 2*(sigma**2)*f[j]**2
S[j-1] = np.exp((-5/4)*(f[j]/fp)**-4)/sigma
elif f[j]>fp:
sigma = 0.09
c = -(f[j]-fp)**2
d = 2*(sigma**2)*f[j]**2
S[j-1] = np.exp((-5/4)*(f[j]/fp)**-4)/sigma
怎么样:
import numpy as np
fp = 0.097
for j in range(1,max(f.shape)):
sigma = 0.07 if f[j]<fp else 0.09
d = 2*(sigma**2)*f[j]**2 ## is d actually used in the real formula?
S[j-1] = np.exp((-5/4)*(f[j]/fp)**-4)/sigma