2016-07-28 59 views
0

我創建了1000行1000列的矩陣(matA),我想計算這個矩陣的冪。它可以很好地計算矩陣的3次方。但是,當我問來計算它的4次方,它給出了一個警告消息說,如何解決r中的整數溢出?

「在馬塔馬塔* * *馬塔馬塔:來港的整數溢出產生的」

我怎樣才能解決這個問題呢?

+2

將整數轉換爲數字? – Psidom

+3

你想要像在t(mat)%*%mat中一樣使用elemetwise功率或矩陣功率嗎? –

+1

需要矩陣功率。我試過數字轉換。但它給出了相同的警告。 –

回答

2

因爲你沒舉個例子:

set.seed(101) 
z <- matrix(rnorm(1e6),1e3) 
z2 <- round(z)*1000000 
storage.mode(z2) <- "integer" 

如果你真的想要一個矩陣功率(如z2 %*% z2 %*% z2 %*% z2),最好使用Matrixexpm包。

library(expm) 
z4C <- z2 %^% 4 

在另一方面,如果你真的想要的elementwise產品

z4D <- z2*z2*z2*z2 
## Warning message "NAs produced" 

所有你需要做的是轉換爲數值。

storage.mode(z2) <- "numeric" 
z4E <- z2*z2*z2*z2 ## fine