【发布时间】:2016-10-18 15:43:57
【问题描述】:
我必须在黑色背景上模拟带有白色裂纹的图像。所以我定义了一个函数,它将所有元素都等于零的矩阵添加到一些连续的点等于一。 函数如下:
crepa<-function(matrice) {
start<-sample(1:ncol(matrice),1)
matrice[1,start]<-1
for (i in 2:nrow(matrice)) {
alpha<-sample(c(-1,0,1),1)
succ<-start+alpha
if (succ==(ncol(matrice)+1)) succ==ncol(matrice)
if (succ==0) succ==1
matrice[i,succ]<-1
start<-succ
}
matrice<-as.matrix(matrice)
}
为了控制函数是否运行良好,我将它一遍又一遍地应用于以下矩阵:
m<-matrix(0,64,64)
imma<-crepa(m)
par(mar=rep(0,4))
image(t(imma), axes = FALSE, col = grey(seq(0, 1, length = 256)))
在大多数情况下,结果是正确的。但是,在少数情况下我会遇到此错误:
[<-(*tmp*, i, succ, value = 1) 中的错误:下标越界
【问题讨论】: