Hilfe bei Matrix multiplication

Code-Stücke können hier veröffentlicht werden.
Antworten
Einsteigercoder
User
Beiträge: 3
Registriert: Donnerstag 3. Dezember 2020, 01:56

Donnerstag 3. Dezember 2020, 02:02

Kann mir jmd bei dem code hier helfen komme nicht weiter

import numpy as np

from lib import timedcall, plot_2d


def matrix_multiplication(a: np.ndarray, b: np.ndarray) -> np.ndarray:
"""
Calculate product of two matrices a * b.

Arguments:
a : first matrix
b : second matrix

Return:
c : matrix product a * b

Raised Exceptions:
ValueError: if matrix sizes are incompatible

Side Effects:
-

Forbidden: numpy.dot, numpy.matrix
"""

n, m_a = a.shape
m_b, p = b.shape

# TODO: test if shape of matrices is compatible and raise error if not

# Initialize result matrix with zeros
c = np.zeros((n, p))

# TODO: Compute matrix product without the usage of numpy.dot()


return c
Sirius3
User
Beiträge: 14207
Registriert: Sonntag 21. Oktober 2012, 17:20

Donnerstag 3. Dezember 2020, 11:23

Und womit kommst Du nicht weiter? Wo konkret hast Du Schwierigkeiten? Die TODOs beschreiben doch recht genau, was zu tun ist.

lib ist ein sehr schlechter Name für ein Modul. Der Modulname sollte ausdrücken, was das Thema des Moduls ist.

Einbuchstabige Variablennamen sind meist schlecht, weil sie zu wenig sagen, was der Inhalt der Variable ist.
Benutzeravatar
__blackjack__
User
Beiträge: 8430
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Donnerstag 3. Dezember 2020, 11:29

@Einsteigercoder: Was genau heisst Du kommst nicht weiter?

Da steht im Docstring was die Funktion machen soll und was Du *nicht* verwenden darfst.

Du müsstest als erstes herausfinden wie Matrixmultiplikation funktioniert. Und dann die beiden TODO-Kommentare durch entsprechenden Code ersetzen.

Wie funktioniert denn Matrixmultiplikation? Und welche Eigenschaft bezüglich der Dimensionen müssen die beiden Matrizen `a` und `b` aufweisen, damit man sie multiplizieren kann?
“For every complex problem, there is a solution that is simple, neat, and wrong.” — H. L. Mencken
Antworten