diff --git a/cachematrix.R b/cachematrix.R index a50be65aa44..3ab891ee274 100644 --- a/cachematrix.R +++ b/cachematrix.R @@ -2,14 +2,34 @@ ## functions do ## Write a short comment describing this function +## This function creates a special "matrix" object that can cache its inverse. makeCacheMatrix <- function(x = matrix()) { - + inv <- NULL + set <- function(y) { + x <<- y + inv <<- NULL + } + get <- function() x + setInverse <- function(inverse) inv <<- inverse + getInverse <- function() inv + list(set = set, get = get, setInverse = setInverse, getInverse = getInverse) } ## Write a short comment describing this function +## This function computes the inverse of the special "matrix" returned by makeCacheMatrix. If the inverse has already been calculated (and the matrix has not changed), it retrieves the inverse from the cache. cacheSolve <- function(x, ...) { + inv <- x$getInverse() + if (!is.null(inv)) { + message("getting cached data") + return(inv) + } + data <- x$get() + inv <- solve(data, ...) + x$setInverse(inv) + inv ## Return a matrix that is the inverse of 'x' + }