forked from rdpeng/ProgrammingAssignment2
-
Notifications
You must be signed in to change notification settings - Fork 0
/
cachematrix.R
44 lines (36 loc) · 1.22 KB
/
cachematrix.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
## makeCacheMatrix creates a special "matrix" object that can cache its inverse:
makeCacheMatrix <- function(x = matrix()) {
i<- NULL
set<- function(y){
x<<- y
i<<- NULL
}
get<-function() x
setinverse <- function(solve) i <<- solve
getinverse <- function() i
list(set=set, get=get,
setinverse=setinverse,
getinverse=getinverse)
}
## cacheSolve calculates the inverse of the special "matrix" returned by
## makeCacheMatrix above. If the inverse has already been calculated
##then the cachesolve should retrieve the inverse from the cache.
cacheSolve <- function(x, ...) {
i<-x$getinverse()
if(!is.null(i)){
message("getting cached data")
return(i)
}
data<-x$get()
i<- solve(data, ...)
x$setinverse(i)
i
}
## Return a matrix that is the inverse of 'x'
##Testing the Program:
m<-matrix(1:4,nrow=2,ncol=2) ## m is an invertible matrix defined by the user
x<-makeCacheMatrix(m) #creates the matrix object that can cache its inverse
x$get()
inv<-cacheSolve(x) #calculates the inverse
inv
inv<- cacheSolve(x)