R 重新创建diag()函数
我目前正在尝试复制R中的R 重新创建diag()函数,r,function,R,Function,我目前正在尝试复制R中的diag()函数,以便更好地理解。不幸的是,我的解只对对称矩阵有用 diagnew <- function(x){ k <- c() for(i in 1:nrow(x)){ k[i] <- x[i,i] } return(k) } diagnew错误来自循环传递min(nrow,ncol) diagnew diagnew <- function(x){ n <- min(nrow(x), ncol(x))
diag()
函数,以便更好地理解。不幸的是,我的解只对对称矩阵有用
diagnew <- function(x){
k <- c()
for(i in 1:nrow(x)){
k[i] <- x[i,i]
}
return(k)
}
diagnew错误来自循环传递min(nrow,ncol)
diagnew
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