Seite 1 von 1

symmetrische Matrix erstellen, for-schleife funktioniert nicht

Verfasst: So Dez 23, 2018 6:38 pm
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!

Re: symmetrische Matrix erstellen, for-schleife funktioniert nicht

Verfasst: So Dez 23, 2018 7:03 pm
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)))

Re: symmetrische Matrix erstellen, for-schleife funktioniert nicht

Verfasst: So Dez 23, 2018 8:04 pm
von pinguin111
wow, ich bin beeindruckt. Vielen vielen herzlichen Dank!