gpt4 book ai didi

r - 为矩阵中的 "offset"对角线赋值

转载 作者:行者123 更新时间:2023-12-05 08:57:29 26 4
gpt4 key购买 nike

如果我有一个矩阵 x任意维度,对于这个例子:

     [,1] [,2] [,3] [,4] [,5]
[1,] 0 0 0 0 0
[2,] 0 0 0 0 0
[3,] 0 0 0 0 0
[4,] 0 0 0 0 0
[5,] 0 0 0 0 0

我想从某一列开始将 0 更改为 1,然后向下移动一个,向右移动一个,直到最后一列结束。因此,如果我从 [,3] 列开始改变会导致

     [,1] [,2] [,3] [,4] [,5]
[1,] 0 0 1 0 0
[2,] 0 0 0 1 0
[3,] 0 0 0 0 1
[4,] 0 0 0 0 0
[5,] 0 0 0 0 0

我想也许是这样的x[,3:ncol(x)][1:ncol(x)] <- 1但这给了我

     [,1] [,2] [,3] [,4] [,5]
[1,] 0 0 1 0 0
[2,] 0 0 1 0 0
[3,] 0 0 1 0 0
[4,] 0 0 1 0 0
[5,] 0 0 1 0 0

最佳答案

你也可以使用rowcol:

start_col <- 3
m[row(m) + start_col - 1 == col(m)] <- 1

m
# [,1] [,2] [,3] [,4] [,5]
# [1,] 0 0 1 0 0
# [2,] 0 0 0 1 0
# [3,] 0 0 0 0 1
# [4,] 0 0 0 0 0
# [5,] 0 0 0 0 0

m 是:

m <- matrix(0, ncol = 5, nrow = 5)

关于r - 为矩阵中的 "offset"对角线赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31488654/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com