gpt4 book ai didi

重新创建 diag() 函数

转载 作者:行者123 更新时间:2023-12-01 13:14:32 25 4
gpt4 key购买 nike

我目前正在尝试复制 R 中的 diag() 函数以获得更好的理解。不幸的是,我的解决方案仅对对称矩阵有用。

diagnew <- function(x){
k <- c()
for(i in 1:nrow(x)){
k[i] <- x[i,i]
}
return(k)
}

如果有任何提示可以概括我的函数,我将不胜感激。

最佳答案

错误来自循环传递 min(nrow, ncol)

diagnew <- function(x){
n <- min(nrow(x), ncol(x))
k <- vector(class(x[1,1]), n)
for(i in seq.int(n)){
k[i] <- x[i,i]
}
k
}

mat <- matrix(1:10, 5)
diag(mat)
diagnew(mat)

identical(diag(mat), diagnew(mat))
#[1] TRUE

关于重新创建 diag() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56714324/

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