2016-10-18 3 views
0

最初の投稿!私はこの問題について他の多くの記事を見てきましたが、私のコードに当てはまるものは何も見つかりません。python - '複数の要素を持つ配列の真理値はあいまいです' - どのような真理値ですか?

私は、オーディオファイルを読み込み、サンプルの配列の最大値と最小値を見つけようとしています。xです。
wavread()は、私がインポートした別のモジュールで定義されている関数です。
fs, xを返します。
x Iはipythonに個別にこれらの行を入力したとき、私は私が望む結果を得る一次元アレイ(x.shape = (150529,)。)

def minMaxAudio(inputFile): 
    (fs, x) = wavread(inputFile) 
    max_val = numpy.amax(x) 
    min_val = numpy.amin(x) 
    return (min_val, max_val) 

あります。

ValueError: The truth value of an array with more than one element is ambiguous. 
Use a.any() or a.all() 

それは最後の行(return文)を強調表示し、エラーの場所として:私は、インポートの.pyファイルからこの関数を呼び出すとき、私はエラーを取得します。

私が見てきたすべての他の投稿には、コード内の評価や比較演算子が含まれています。私のものは持っていない...それか?

ありがとうございます!

+2

それはさらに、スタックトレースがありますコードは、あなたが遭遇したエラーが表示されます

ような? –

+0

Daveと同意します。エラーソースは、関数を呼び出す場所のようです。 –

+0

私はipythonを再起動しようとしましたが、今は動作します。変更を加えた後、再度 'import module'を実行しても実際にファイルをリロードしないことはわかりませんでした。 reload(module)を実行する必要があります。わかりやすいことは、ipythonが*私はそれを呼び出したとき*変更されたコードを印刷していましたが、実際にはそのコードを実行していないので、代わりに古いバージョンを実行していますか?これは本当に正しい動作ですか?私はUbuntuにいる。 – gwens

答えて

0

WAVファイルに複数のチャンネルがある場合、ステレオであると言いますが、min_valとmax_valは配列そのものですか?

min, max = minMaxAudio('acdc.wav') 
# Assuming floats 
if max > 1: 
    print('saturation') 

以下が動作するのに対し:

min, max = minMaxAudio('acdc.wav') 
# Assuming floats 
if np.any(max > 1): 
    print('saturation') 
関連する問題