Thanks everyone, That's a 3000 fold speedup. Now if only I can get the same improvement on the stMincuts iGraph algorithm.
On Fri, Apr 25, 2014 at 4:20 AM, Martin Maechler <maech...@stat.math.ethz.ch > wrote: > >>>>> Stefan Evert <stefa...@collocations.de> > >>>>> on Fri, 25 Apr 2014 09:09:31 +0200 writes: > > > On 24 Apr 2014, at 23:56, Greg Snow <538...@gmail.com> wrote: > > >> library(Matrix) > >> > >> adjM <- Matrix(0,nrow=10,ncol=10) > >> > >> locs <- cbind( sample(1:10), sample(1:10) ) > >> vals <- rnorm(10) > >> > >> adjM[ locs ] <- vals > > > ... and once you've got your data in this format, why not construct > the sparse matrix directly? > > > adjM <- sparseMatrix(i = locs[,1], j = locs[,2], x = vals) > > > I've found this to be very efficient and have used it with sparse > matrices containing up to around 100 million nonzero entries. > > Yes, indeed, thank you Stefan! > > Let me reiterate : > > __ Unless you can use special constructors such as > __ > __ Diagonal() # diagonal matrices > __ bdiag() # block diagonal matrices > __ bandSparse() # "banded diagonal" matrices > __ kronecker(a, b) # where a or b are sparse > __ > __ (and maybe another one I forgot) > __ > __ *the* way to efficiently construct large sparse matrices is > __ sparseMatrix() > __ or sometimes its alternative / precursor spMatrix(). > __ > __ Matrix(d, ...., sparse=TRUE) > __ > __ is nice and fine only for relatively *small* matrices, > __ as it really works from a dense original 'd' (directly or via > replication) > > > > Hope this helps, > > I do hope, too. > I'm very happy for suggestions on how we as Matrix authors > could make this better known. > > Recently, someone proposed to make the 'rsparseMatrix()' > utility function from help(sparseMatrix) > into an "official" Matrix package function. If I did that, > I could start using rsparseMatrix() in typical examples rather > than the current often use of Matrix() or > as(<traditional matrix>, "sparseMatrix") > both of which are perfect for the small examples that are > typical for help files. > > Martin Maechler, > ETH Zurich > > [[alternative HTML version deleted]] ______________________________________________ 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.