user3067923
user3067923

Reputation: 447

add a value randomly to a matrix

How can I randomly add a value to a matrix?

say I have:

mat <- matrix(0, 10, 10)
v = 5

how can I add randomly v to mat, 2 positions at a time? The output should look like this after a single iteration:

out
      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,]    0    0    0    0    0    0    0    0    0     0
[2,]    5    0    0    0    0    0    0    0    0     0
[3,]    0    0    0    0    0    0    0    0    0     0
[4,]    0    0    0    0    5    0    0    0    0     0
[5,]    0    0    0    0    0    0    0    0    0     0
[6,]    0    0    0    0    0    0    0    0    0     0
[7,]    0    0    0    0    0    0    0    0    0     0
[8,]    0    0    0    0    0    0    0    0    0     0
[9,]    0    0    0    0    0    0    0    0    0     0
[10,]   0    0    0    0    0    0    0    0    0     0

After another iteration, mat should have 2 more positions filled with the value in 'v'

Upvotes: 0

Views: 85

Answers (1)

sgibb
sgibb

Reputation: 25736

You could use ?sample to randomly index your matrix:

idx <- sample(length(mat), size=2)
mat[idx] <- mat[idx] + v

Upvotes: 2

Related Questions