eli
eli

Reputation: 184

How can I change some element of matrix inside a function in R language automatically?

I have tried to write a function for this part of code and I can not mange because I am new to R can someone help me? I made a function like this :

m <- matrix(0, nrow=10, ncol=10) # Create an adjacency matrix
and I have changed the the element of it like below :
m[1,2] <- m[2,3] <- m[3,4] <-m[4,5]<-m[5,6]<-m[6,7]<-m[7,8] <-m[8,9]<-m[9,10]<-m[1,10] <- 1

but how can i do it automatically inside a function? to automatically iterate and change value?

Upvotes: 1

Views: 108

Answers (1)

StupidWolf
StupidWolf

Reputation: 46908

I am not very sure about the logic for why m[1,10] is assigned one, for the others, you can do:

m <- matrix(0, nrow=10, ncol=10) 
m[row(m) == col(m)-1] <- 1
m

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

Upvotes: 2

Related Questions