symmetrische Matrix erstellen, for-schleife funktioniert nicht

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

Moderatoren: EDi, jogo

Antworten
pinguin111
Beiträge: 10
Registriert: Mo Dez 10, 2018 4:31 pm

symmetrische Matrix erstellen, for-schleife funktioniert nicht

Beitrag von pinguin111 »

Liebe Leute,
ich würde gerne eine symmetrische matrix erstellen und habe mit der oberen rechten seite angefangen.

k=matrix(nrow=5,ncol=5)
k=matrix(data=NA,nrow=5,ncol=5)

p=0.8
for (i in 1:5) {k[i,i]=0.25}
for (i in 1:4) {k[i,i+1]=0.25*p}
for (i in 1:3) {k[i,i+2]=0.25*p^2}
for (i in 1:2) {k[i,i+3]=0.25*p^3}
for (i in 1:1) {k[i,i+4]=0.25*p^4}

Das passt.

#Nun würde ich gerne obiges durch eine Schleife darstellen, da die Matrix später größer sein muss, und ich nicht alles per Hand einzeln eingeben kann, und zwar mit

for (j in 0:4){for (i in 1:5-j) {k[i,i+j]=0.25*p^j}}

aber das funktioniert nicht, da unter der Diagonale und ich habe keine ahnung, warum es nicht funktioniert. Kann mir bitte bitte jemand helfen?

Viele Grüße!
Athomas
Beiträge: 768
Registriert: Mo Feb 26, 2018 8:19 pm

Re: symmetrische Matrix erstellen, for-schleife funktioniert nicht

Beitrag von Athomas »

R ist Weltmeister im Schleifen verbergen :D :

Code: Alles auswählen

a <- matrix(rep(NA,25), ncol=5)
p <- 0.8

a <- 0.25*p^(abs(col(a) - row(a)))
pinguin111
Beiträge: 10
Registriert: Mo Dez 10, 2018 4:31 pm

Re: symmetrische Matrix erstellen, for-schleife funktioniert nicht

Beitrag von pinguin111 »

wow, ich bin beeindruckt. Vielen vielen herzlichen Dank!
Antworten