【发布时间】:2015-09-04 16:57:11
【问题描述】:
下面的代码为每个等于 1 的矩阵元素分配一个介于 0 到 1 之间的随机值。我的实际矩阵非常大,下面的代码需要很长时间才能运行。我怎样才能让它更快。请注意,每个为 1 的单元格应获得 0 到 1 之间的随机值。我不希望所有单元格获得相同的值
#convert black pixels to a random color between 0 to 1
mat1=matrix(c(1,1,0,0.5,1,0.4),nrow=2)
collection=c()
value=0
mat1
mat1==1
for (counter1 in (1:nrow(mat1)))
{
for (counter2 in (1:ncol(mat1)))
{
if(mat1[counter1,counter2]==1){value=runif(1,0,1);mat1[counter1,counter2]=value;collection=c(collection,value)}
}
}
mat1
【问题讨论】:
标签: r matrix vectorization