R 3.1.3 'Fehler beim Versuch auf nicht-Funktion' innerhalb des eigenen entworfenen Funktion zum Zwischenspeichern einer inversen matrix
Hallo, ich Schreibe eine Funktion zum cache eine inverse matrix zur Minimierung der Rechenzeit.
Erwarte ich, dass die Funktion die Ausgabe eines inversen matrix jedoch bekomme ich eine Fehlermeldung, die sagt, ich bin versucht, verwenden Sie ein nicht-Funktion.
Dem ersten Stück code erstellt eine Funktion zum einrichten der Daten für die zweite Funktion. Diese in der Theorie dauert in der matrix invertiert es und speichert es.
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)
}
Erwarte ich keine Ausgang in diesem Stadium, wie ich sagte, es stellt nur die Daten. unten casheSolve
übernimmt eine matrix und prüft es gegen die Daten in makeCacheMatrix
cacheSolve <- function(x, ...) {
m <- x$getmarix()
if(!is.null(m)){
message("getting cached data")
return(m)
}
data <- x$get()
m <- solve(data,...)
x$setmatrix(m)
m
## Return a matrix that is the inverse of 'x'
}
Diesem allen tritt gut mit keine Fehler in meinem log. Ich gehe dann, um es zu testen und ich bekomme eine Fehlermeldung.
n <- matrix(1:4,2,2)
h <- makeCacheMatrix(n)
cacheSolve(h)
Fehler in cacheSolve(h) : attempt to apply non-function
Habe ich eine ähnliche Funktion für das speichern der Mittelwert eines Vektors und das läuft fehlerfrei ich bin nicht sicher, ob ich verpasst haben, ein Schritt in der Umwandlung von Vektoren unter Berücksichtigung der Berücksichtigung der matrixies.
Leser, der code kann auch helfen, um einen besseren Kern, so ich habe es unten
makeVector <- function(x = numeric()) {
m <- NULL
set <- function(y) {
x <<- y
m <<- NULL
}
get <- function() x
setmean <- function(mean) m <<- mean
getmean <- function() m
list(set = set, get = get,
setmean = setmean,
getmean = getmean)
}
cachemean <- function(x, ...) {
m <- x$getmean()
if(!is.null(m)) {
message("getting cached data")
return(m)
}
data <- x$get()
m <- mean(data, ...)
x$setmean(m)
m
}
z <- makeVector()
z$set(1:4)
cachemean(z)
- Ist dies
m <- x$getmarix()
ein Tippfehler? - user227710 - ich bin gedemütigt. Ich würde sogar gedruckt dem code heraus und markiert es. ja, es war ein Tippfehler und es fixiert den code.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies kann behoben werden, indem die Bearbeitung der typo
Lesen sollte
und dann funktioniert der code einwandfrei.
Mein Dank an Benutzer 227710 für dies bemerkt.