On Aug 1, 2011, at 20:12 , monk wrote: > dear all, > > i have a quite simple question, i want to fill up a Matrix like done in the > following function, > but the performance is very bad for large dimensions > is there a way to do this like with apply or something similar? > > > makeMatrix <- function(a, b,dim) { > X=matrix(0,ncol=dim,nrow=dim) > > > > for (i in c(1:dim)){ > for (j in c(1:dim)) { > if (i==j) {X[i,j]<-a} > else { X[i,j]<- exp(( -1*abs(i-j))/(3*b)) } > } > } > X > } >
I'd go for something like X <- outer(1:dim, 1:dim, function(i,j) exp(-abs(i-j)/3/b)) diag(X) <- a > -- > View this message in context: > http://r.789695.n4.nabble.com/fill-Matrix-quicker-tp3710428p3710428.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > R-help@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. -- Peter Dalgaard, Professor, Center for Statistics, Copenhagen Business School Solbjerg Plads 3, 2000 Frederiksberg, Denmark Phone: (+45)38153501 Email: pd....@cbs.dk Priv: pda...@gmail.com "Døden skal tape!" --- Nordahl Grieg ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.