elementweise Matrizenrechnung mit Beträgen

Wie rufe ich R-Funktionen auf, wie selektiere ich Daten, ich weiß nicht genau ....

Moderatoren: EDi, jogo

Antworten
luckynele
Beiträge: 11
Registriert: Fr Mai 17, 2019 11:39 am

elementweise Matrizenrechnung mit Beträgen

Beitrag 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
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: elementweise Matrizenrechnung mit Beträgen

Beitrag 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
luckynele
Beiträge: 11
Registriert: Fr Mai 17, 2019 11:39 am

Re: elementweise Matrizenrechnung mit Beträgen

Beitrag 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.
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: elementweise Matrizenrechnung mit Beträgen

Beitrag 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
Antworten