Disclosure: Questo è da un'assegnazione di programmazione da un corso Coursera chiamato R programmazionela matrice inversa da un oggetto in cache in R
L'assegnazione è per quanto riguarda le funzioni di ambito e cache lessicali che possono richiedere un tempo di calcolo lunga. Nello specifico sto usando solve()
per trovare l'inverso di una matrice e lo metto in cache usando una variabile fluttuante. Sto restituendo un errore come descritto di seguito.
In primo luogo ho conservato una funzione in una variabile a<-makeCacheMatrix()
Poi corro a$set(matrix(1:4,2,2)
per memorizzare una matrice
Quando eseguo cacheSolve(a)
ottengo Error in as.vector(x, mode) : cannot coerce type 'closure' to vector of type 'any'
Dalla mia comprensione ho il sospetto che io possa essere il superamento di un vettore atomica quando richiede una matrice, ma non sono sicuro come risolvere
Il mio codice:
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
}
Guardate il vostro definizione di funzione per cacheMatrix. Qual è l'oggetto che stai effettivamente passando a quella funzione. Cosa crea quell'argomento per cacheMatrix? È una matrice? – bwalter