gpt4 book ai didi

从 R 中的缓存对象返回逆矩阵

转载 作者:行者123 更新时间:2023-12-03 20:53:02 25 4
gpt4 key购买 nike

披露:这是来自 Coursera 类(class)的编程作业,称为 R 编程

分配是关于可能需要较长计算时间的词法作用域和缓存函数。具体来说,我正在使用 solve()找到矩阵的逆矩阵并使用自由 float 变量缓存它。我正在返回如下所述的错误。

首先,我将一个函数存储在一个变量 a<-makeCacheMatrix() 中然后我运行 a$set(matrix(1:4,2,2)存储矩阵

当我跑 cacheSolve(a)我收到 Error in as.vector(x, mode) : cannot coerce type 'closure' to vector of type 'any'
根据我的理解,我怀疑我可能会在需要矩阵时传递一个原子向量,但我不知道如何解决

我的代码:

makeCacheMatrix <- function(x = matrix()) {
m<-NULL
set<-function(y){
x<<-y
m<<-NULL
}
get<-function() x
setmatrix<-function(solve) m<<- solve
getmatrix<-function() m
list(set=set, get=get,
setmatrix=setmatrix,
getmatrix=getmatrix)
}

cacheSolve <- function(x=matrix(), ...) {
m<-x$getmatrix()
if(!is.null(m)){
message("getting cached data")
return(m)
}
matrix<-x$get
m<-solve(matrix, ...)
x$setmatrix(m)
m
}

最佳答案

Error in as.vector(x, mode) : cannot coerce type 'closure' to vector of type 'any'



意味着您尝试将函数强制转换为向量/矩阵。确实在这一行:
matrix <- x$get
m <- solve(matrix, ...)
matrix是一个函数,或者 solve需要一个矩阵。

你只需要改变这一行:
matrix <- x$get

经过
matrix <- x$get() 

关于从 R 中的缓存对象返回逆矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23796316/

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