2017-04-02 33 views
-1

私はすべての項目がゼロである特異値分解10x10の単純な行列に取り組んでいます。私はこの行列にコインフリップを加えてSVDを実行したいと思います。コードは以下の通りです:getMatrixで 範囲外の添え字エラー

エラー[I、]:私はRでプログラムを実行すると

# Simple Example 
 

 
set.seed(1234) 
 
par(mar=rep(0.2,4)) 
 
dataMatrix = matrix(rnorm(100), nrow=10) 
 

 
dataMatrix 
 

 
getMatrix = dataMatrix*0 
 
getMatrix 
 

 
svd1 = svd(getMatrix) 
 
svd1 
 

 
par(mfrow=c(1,5)) 
 

 
image(t(getMatrix)[,nrow(getMatrix):1], col='blue') 
 
plot(svd1$d,xlab='Column',ylab='Singular Values', pch=19, col='red') 
 

 

 
## Add a pattern to the data set , flipping a coin 
 

 
set.seed(78910) 
 
for (i in 1:40){ 
 
    coinFlip1 = rbinom(1,size=1, prob=0.5) 
 
    coinFlip2 = rbinom(1,size=1,prob=0.5) 
 
    
 
    if (coinFlip1){ 
 
    getMatrix[i,]=getMatrix[i,]+rep(c(0,5),each=5) 
 
    } 
 
    if (coinFlip2){ 
 
    getMatrix[i,]=getMatrix[i,]+rep(c(0,5),each=5) 
 
    } 
 
} 
 

 
hh = hclust(dist(getMatrix)) 
 
getMatrixOrdered= getMatrix[hh$order,]

、それは私に、以下のエラー与え範囲外の添字を

境界が乱れていることがわかりました。どうすれば修正できますか?

ありがとうございました!

答えて

0
for (i in 1:40){ 

for (i in 1:10){ 
の代用
関連する問題