Преобразование словаря Python в список, значение ошибки последовательности - PullRequest
0 голосов
/ 20 июня 2019

Есть файл .mat, который я должен прочитать и построить его спектрограмму.Когда я читаю содержимое из файла, я получаю словарь, а затем должен преобразовать его в список.Преобразование выполняется простым циклом for (как показано в коде вниз).Ошибка в функции signal.stft, которая заканчивается на «ValueError: установка элемента массива с последовательностью».Так что я пропустил, и кто-нибудь может мне помочь с этим кодом.

Fs = 8000
dtmf = sio.loadmat('dtmf1.mat')
dictlist = []

for key, value in dtmf.items():
    temp = [key,value]
    dictlist.append(temp)

f1, t1, Zxx1 = signal.stft(dictlist, Fs, nperseg=512,
                           window=signal.hamming(512), 
                           noverlap=512, boundary='even')

plt.figure()
plt.pcolormesh(t1, f1, 20*np.log10(np.abs(Zxx1)))
plt.xlabel('Time [s]')
plt.ylabel('Freq [Hz]')$

1 Ответ

0 голосов
/ 21 июня 2019

Что я должен сделать, это

dictlist = dtmf['dtmf1'] 

вместо

for key, value in dtmf.items():
temp = [key,value]
dictlist.append(temp)

потому что в моем словаре есть избыточные ключи (все, кроме 'dtmf1') в словаре.

В любом случае, большое спасибо - Xmoōŋŷ и balderman.

...