我在心理声学模型中实现扩散功能。 我的步骤:
我从第1步开始,在python中遇到语法错误。 我不知道如何纠正
# Generate center frequency of each Bark
center = zeros(1, size(bark_scale, 2) - 1)
for k in 1:size(bark_scale, 2) - 1:
center(k) = (bark_scale(k) + bark_scale(k + 1)) / 2
end
修改
# Generate center frequency of each Bark
center = zeros(1, bark_scale.size[1]- 1)
k = np.arange(bark_scale.size[1] - 1)
center = (bark_scale[k] + bark_scale[k + 1]) / 2
修改+校正
答案 0 :(得分:0)
以下是更正代码的方法。我假设bark_scale
是一个形状为(1, n)
的数组,并加载了numpy
。
Numpy 首先,您需要导入numpy
才能处理数组:
import numpy as np
数组大小要获取数组第二维的大小(例如bark_scale
),您应该使用bark_scale.size[1]
而不是size(bark_scale, 2)
。
用零填充的数组要定义一个用零填充的数组,您应该使用np.zeros((1, 10))
而不是zeros(1, 10)
。
For loop 在Matlab中,它看起来像这样:
for k = 1:10
% ...
end
而在Python中它看起来像:
for k in range(0, 10):
# ...
数组访问您应该使用bark_scale[k]
代替bark_scale(k)
来获取bark_scale
的第k个值。
有了所有这些要点,您应该能够纠正您的代码。我希望这会对你有所帮助。