我想创建一个矩阵,使得如果(第n行-第n列)= 2或3,则应该用一些数字(例如5)填充。
所以matrix [7,9] = 5;和matrix [5,2] = 5;和matrix [13,15] = 5等等。
我尝试了
matrix <- matrix(nrow = n, ncol = n)
for (i in matrix[i,]){
for (j in matrix[,j]){
ifelse(((i-j) == 2|3), 5, 0)
}
}
很显然,这是错误的,因为i
和j
不对应于第一,第二... n行/列。请帮帮我。
答案 0 :(得分:1)
这是使用row
和col
的一种方式
n <- 10
mat <- matrix(nrow = n, ncol = n)
row_col_diff <- row(mat) - col(mat)
mat[row_col_diff == 2 | row_col_diff == 3] <- 5
mat
# [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
# [1,] NA NA NA NA NA NA NA NA NA NA
# [2,] NA NA NA NA NA NA NA NA NA NA
# [3,] 5 NA NA NA NA NA NA NA NA NA
# [4,] 5 5 NA NA NA NA NA NA NA NA
# [5,] NA 5 5 NA NA NA NA NA NA NA
# [6,] NA NA 5 5 NA NA NA NA NA NA
# [7,] NA NA NA 5 5 NA NA NA NA NA
# [8,] NA NA NA NA 5 5 NA NA NA NA
# [9,] NA NA NA NA NA 5 5 NA NA NA
#[10,] NA NA NA NA NA NA 5 5 NA NA