Seite 1 von 1

elementweise Matrizenrechnung mit Beträgen

Verfasst: Di Mai 28, 2019 2:23 pm
von luckynele
Hallo zusammen,
ich habe ein Problem mit der elementweisen Matrizenrechnung.
Erst mal ein kleines Beispiel:
Ich habe eine Matrix A:

Code: Alles auswählen

  
    [1] 2 3 4 5
    [2] 4 2 3 5
    [3] 3 5 2 4
Jetzt möchte ich elementweise Zeile 1 von Zeile 2 subtrahieren und die Beträge addieren, also:

Code: Alles auswählen

 [1] abs(4-2) abs(2-3) abs(3-4) abs(5-5)
und dann eben die Summe dieser Zahlen berechnen.
Ich weiß nicht, wie ich die elementweisen Beträge der Matrix berechnen soll.
Ich habe schon folgendes versucht:

Code: Alles auswählen

abs(A[2]) - abs(A[1])
Aber das liefert mir falsche Ergebnisse.
Vielleicht kann mir hier jemand weiterhelfen.
Liebe Grüße,
Nele

Re: elementweise Matrizenrechnung mit Beträgen

Verfasst: Di Mai 28, 2019 2:28 pm
von jogo
Hallo Nele,

das könnte so aussehen:

Code: Alles auswählen

A <- matrix(c(2, 3, 4, 5,  4, 2, 3, 5,  3, 5, 2, 4), nrow = 3, byrow = TRUE)
A
sum(abs(A[2,] - A[1, ]))
Ich habe schon folgendes versucht:

Code: Alles auswählen

abs(A[2]) - abs(A[1])
Aber das liefert mir falsche Ergebnisse.
Das ist klar, denn eine Matrix ist im Wesen ein Vektor mit einem Parameter, der festlegt, nach wieviel Elementen eine neue Spalte begonnen werden soll. Deshalb kann man Elemente in einer Matrix auch mit einem einfachen Index adressieren:

Code: Alles auswählen

M <- matrix(101:106, 2)
M[4]
... für Arrays gilt das auch (nur mit weiteren Dimensionen).

Gruß, Jörg

Re: elementweise Matrizenrechnung mit Beträgen

Verfasst: Mi Mai 29, 2019 1:12 pm
von luckynele
Vielen Dank für die Antwort, so klappt das schon mal! :D
Wie sähe das denn aus wenn ich das jetzt mehrmals über mehrere Zeilen anwenden möchte?
Also mit zum Beispiel folgender Matrix:

Code: Alles auswählen

A <- matrix(c(3, 5, 3, 4, 2, 3, 4, 3, 4, 5, 2, 3, 2, 3, 5, 4, 4, 3, 5, 2, 3, 5, 3, 4, 2, 3, 4, 3, 4, 5, 2, 3, 2, 3, 5, 4, 4, 3, 5, 2), nrow =10, byrow=TRUE)
A
und dann jeweils:

Code: Alles auswählen

[2,]-[1,]
[3,]-[2,]
[4-]-[3,]
usw.

Re: elementweise Matrizenrechnung mit Beträgen

Verfasst: Mi Mai 29, 2019 3:37 pm
von jogo
Hallo Nele,

Code: Alles auswählen

A[-1,] - A[-nrow(A),]
oder meintest Du, dass die Subtraktionen sukzessive ausgeführt werden sollten?

Code: Alles auswählen

for (i in 2:nrow(A)) A[i, ] <- A[i,] - A[i-1,]
Gruß, Jörg