Matrizen

Allgemeine Statistik mit R, die Test-Methode ist noch nicht bekannt, ich habe noch keinen Plan!

Moderatoren: EDi, jogo

Antworten
Moritz
Beiträge: 2
Registriert: Do Jan 04, 2018 3:02 pm

Matrizen

Beitrag von Moritz » Do Jan 04, 2018 3:17 pm

Guten Tag,

ich habe eine Frage zu Matrizen. Ich habe ein Grid (SAGA-GIS) zu einer Matrix gemacht und möchte mir jetzt den höchsten Wert anzeigen lassen und lokalisieren (Zeile und Spalte). Ich habe bereits die Matrix erstellt:

SAGA.Grid=raster("SAGA.Grid.sgrd")
dgmmatrix_SAGA.Grid=as.matrix(SAGA.Grid)
ergebnis1=max(dgmmatrix_SAGA.Grid)
ergebnis1

ergebnis1 zeigt mir jetzt den hächsten Wert an aber wie kann ich mir die Positionierung anzeigen lassen (Zeile und Spalte)?

Schon mal lieben Dank

Moritz

bigben
Beiträge: 431
Registriert: Mi Okt 12, 2016 9:09 am

Re: Matrizen

Beitrag von bigben » Do Jan 04, 2018 3:58 pm

Hallo Moritz,

zunächst einmal willkommen im Forum. Gleich als erstes möchte ich Dich auf die Code-Tags hinweisen, die dieses Forum Dir bietet, um Code als solchen erkennbar und leichter lesbar zu machen. Darüber hinaus ist es fast immer sinnvoll, reproduzierbare Beispiele zu posten, also Code, der auch auf den Rechnern der anderen Forumsuser läuft.

So wie die Funktion max() Dir den höchsten Wert anzeigt, zeigt die Funktion which.max() die Stellen an, an denen der höchste Wert vorkommt. Allerdings nicht als x- und y-Koordinate, sondern innerhalb eines Vektors, als der die Matrix intern hinterlegt ist. Du musst Dir diese Stelle im Vector dann mithilfe der Zeilen- und Spaltenzahl selbst ausrechnen.

Schau Dir das hier mal in Ruhe an:

Code: Alles auswählen

A <- matrix(c(1,0,0, 0,0,0, 0,0,0), nrow=3)
print(A)
which.max(A)

A[2,1] <- 2
print(A)
which.max(A)

A[3,1] <- 3
print(A)
which.max(A)

A[1,2] <- 4
print(A)
which.max(A)

# Ganzzahldivision:
4%/%4
5%/%4
6%/%4
7%/%4
8%/%4

# Rest nach Ganzzahldivision
4%%4
5%%4
6%%4
7%%4
8%%4
HTH,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte

bigben
Beiträge: 431
Registriert: Mi Okt 12, 2016 9:09 am

Re: Matrizen

Beitrag von bigben » Do Jan 04, 2018 4:13 pm

Nachtrag: Es gibt folgenden Hack:

Code: Alles auswählen

B <- matrix(c(0,0,0, 0,0,1, 0,0,0), nrow=3)
print(B)
which(B == max(B), arr.ind = TRUE)
Mit integer-Werten ist das prima. Mit Fließkommawerten würde ich mich auf `==` nicht verlassen wollen.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte

Moritz
Beiträge: 2
Registriert: Do Jan 04, 2018 3:02 pm

Re: Matrizen

Beitrag von Moritz » Fr Jan 12, 2018 6:43 pm

Vielen Dank, hat geklappt.

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast