Quoting Duncan Murdoch <[EMAIL PROTECTED]>: > On 9/21/2006 10:40 AM, Doran, Harold wrote: >> Suppose I have a square matrix P >> >> P <- matrix(c(.3,.7, .7, .3), ncol=2) >> >> I know that >> >>> P * P >> >> Returns the element by element product, whereas >> >>> P%*%P >> >> Returns the matrix product. >> >> Now, P^2 also returns the element by element product. But, is there a >> slick way to write >> >> P %*% P %*% P >> >> Obviously, P^3 does not return the result I expect. > > > I don't think there's anything built in, but it's easy to write your own:
I think there was function mtx.exp() in the Malmig package, but it seems that this package has been withdrawn from CRAN. An old version appears to exist in: http://r.meteo.uni.wroc.pl/src/contrib/Descriptions/Malmig.html Best, Dimitris > "%^%" <- function(mat, pow) { > stopifnot(length(pow) == 1, all.equal(pow, round(pow)), nrow(mat) == > ncol(mat)) > pow <- round(pow) > if (pow < 0) { > mat <- solve(mat) > pow <- abs(pow) > } > result <- diag(nrow(mat)) > while (pow > 0) { > result <- result %*% mat > pow <- pow - 1 > } > result > } > > Now P %^% 3 will give you the matrix cube. > > Duncan Murdoch > > ______________________________________________ > [email protected] 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. > > Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm ______________________________________________ [email protected] 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.
