79 Stimmen

Zeilen einer Matrix mit einem Vektor multiplizieren?

Ich habe eine numerische matrix mit 25 Spalten und 23 Zeilen und einem Vektor der Länge 25. Wie kann ich jede Zeile der Matrix mit dem Vektor multiplizieren, ohne eine for Schleife?

Das Ergebnis sollte eine 25x23-Matrix sein (die gleiche Größe wie die Eingabe), aber jede Zeile wurde mit dem Vektor multipliziert.

Reproduzierbares Beispiel aus der Antwort von @hatmatrix hinzugefügt:

matrix <- matrix(rep(1:3,each=5),nrow=3,ncol=5,byrow=TRUE)

     [,1] [,2] [,3] [,4] [,5]
[1,]    1    1    1    1    1
[2,]    2    2    2    2    2
[3,]    3    3    3    3    3

vector <- 1:5

Gewünschter Output:

     [,1] [,2] [,3] [,4] [,5]
[1,]    1    2    3    4    5
[2,]    2    4    6    8   10
[3,]    3    6    9   12   15

1voto

Manos Papadakis Punkte 515

Wenn Sie Geschwindigkeit wünschen, können Sie Rfast::eachrow . Es ist das schnellste von allen...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X