Ujawnienie: To jest z cesją programowania ze Coursera golfowego o nazwie R programowaniaWracając odwrotny macierz z pamięci podręcznej obiektu w R
Przypisanie dotyczy leksykalnych zakresu ich buforowania i funkcji, które mogą wymagać długiego czasu obliczeń. W szczególności używam solve()
, aby znaleźć odwrotność macierzy i buforować ją za pomocą zmiennej swobodnej. Zwracam błąd opisany poniżej.
Najpierw przechowywane funkcji w zmiennej a<-makeCacheMatrix()
Potem biegnę a$set(matrix(1:4,2,2)
przechowywać matrycę
Kiedy biegnę cacheSolve(a)
uzyskać Error in as.vector(x, mode) : cannot coerce type 'closure' to vector of type 'any'
Z mojego zrozumienia Podejrzewam, że może być przepuszczanie wektor atomową gdy jest wymaga matrycy, ale nie jestem pewien, jak to naprawić
Mój kod:
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
}
spojrzeć na swojej definicji funkcji dla cacheMatrix. Jaki obiekt faktycznie przekazujesz do tej funkcji. Co tworzy ten argument dla cacheMatrix? Czy to matryca? – bwalter