Ich habe ein Python-Programm gesehen und ausgeführt, wo eine Matrix in einen Spaltenvektor unter Verwendung a[:,j]
geschnitten und in eine Funktion übergeben wurde. Der Spaltenvektor hat die Dimensionen 40000x1
. Beim Verfolgen der Ausgabe druckte ich die Dimensionen a
in der Funktion und druckte (40000,)
. In der Funktion wird diese Matrix mit einer Matrix b
der Dimensionen 1x40000
multipliziert. Ich habe die Abmessungen des Ergebnisses ausgedruckt und es steht auch das Ergebnis 1x40000
. Wie ist das möglich? Ich habe gelesen, dass a
wird ein Spaltenvektor (natürlich), aber wie kann das Produkt eine 1x40000
Matrix erzeugen? Es erfüllt nicht die Matrixmultiplikationsregel. Ich verwende numpy
.Python-Matrix dargestellt als (40000,)
EDIT:
Code:
def update_state(xk, sk, wx, wRec):
print("Sizes:")
print(xk.shape)
print(wx.shape)
print((xk*wx).shape)
print((xk * wx + sk * wRec).shape)
return xk * wx + sk * wRec
def forward_states(X, wx, wRec):
S = np.zeros((X.shape[0], X.shape[1]+1))
for k in range(0, X.shape[1]):
S[:,k+1] = update_state(X[:,k], S[:,k], wx, wRec)
return S
Ausgang:
Sizes:
(40000,)
(1, 40000)
(1, 40000)
(1, 40000)
Wenn Sie ein paar Zeilen Beispielcode zur Verfügung stellen, wäre das großartig. Zu wissen, auf welche Bibliothek und Funktion Sie sich beziehen, würde einen Unterschied machen, da sie alle etwas unterschiedliche Arten haben, mit diesen Dingen umzugehen. –