2016-08-30 4 views
1

Ich habe gesucht und herausgefunden, dass dies ein Problem bezüglich der Typen sein kann. Aber ich habe versucht, das Array zu zwingen, mit astype zu schwimmen, hat nicht geklappt. Dies muss ein einfacher Fehler sein, aber ich bin ein Anfänger. Über das Problem: Ich versuche, die räumliche Korrelationsmatrix zwischen den Signalen aller Mikrofone zu bilden.ValueError: Objekt mit zu geringer Tiefe für das gewünschte Array

R_a[k][l] = np.correlate(self.mic_list[k].delayed_signal,self.mic_list[l].delayed_signal) 

wo diese Klasse eine mic_list hat, die eine Liste von Mikrofon ist, das ist eine andere Klasse, die diese Methode hat

def add_delayed_signal (self, delayed_signal): 
    self.delayed_signal = delayed_signal 

Dank Sie in fortgeschrittenen.

Antwort

0

Ich schätze R_a ist ein zweidimensionales Array. Was np.correlate tut, ist die cross-correlation zwischen zwei Signalen zu berechnen, und gibt Ihnen einen Vektor als Ergebnis (kein Skalar).

Was Sie suchen, ist wahrscheinlich np.cov oder np.corrcoef. Dies sind auch vektorisierte Ansätze, um das gewünschte Ergebnis zu erhalten.

Zum Beispiel:

>>> x = np.random.randn(10) 
>>> y = np.random.randn(10) 
>>> X = np.vstack((x, y)) 
>>> X 
array([[ 1.45841294, -0.16430013, -0.20782822, 0.08979425, -1.38337166, 
     0.36488053, -2.57135737, 0.81215918, -0.54081983, 0.30421112], 
     [-0.79416305, 1.14511318, -0.4962483 , -0.42647021, -0.59925241, 
     -0.45612051, -0.02566026, -1.7668091 , -1.63098627, 0.3761437 ]]) 
>>> np.cov(X)  
array([[ 1.28563113, -0.20563105], 
     [-0.20563105, 0.74178773]]) 

Ist das, was Sie suchen?

+0

Ich lese, dass, ohne irgendwelche Argumente extra, es wird ein Array mit einem Element sein, so versuchte ich mit [0] abholen, aber ich behalte mit dem gleichen Fehler http://docs.scipy.org/doc /numpy/reference/generated/numpy.correlate.html –

+0

@ R.Baptista Ja, Sie können versuchen, den mittleren Eintrag abzurufen. Aber Sie verschwenden viel Rechenaufwand. Haben Sie versucht, 'np.cov' oder' np.corrcoef' zu verwenden? – Praveen

+0

Ich verstehe. Danke für die Antworten! –

Verwandte Themen