forked from rdpeng/ProgrammingAssignment2
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcachematrix.R
More file actions
40 lines (24 loc) · 1.53 KB
/
cachematrix.R
File metadata and controls
40 lines (24 loc) · 1.53 KB
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
## Put comments here that give an overall description of what your
## functions do
## This function named 'makeCacheMatrix' creates a special "matrix" object that can cache its inverse.
makeCacheMatrix <- function(x = matrix()) {
m <- NULL
raw_matrix <- x ## to get an original matrix.
inverse_matrix <- solve(raw_matrix) ## to calculate the inverse of given matrix.
m <- inverse_matrix ## to cache the inverse matrix.
list(original_matrix = raw_matrix, inverse_matrix = m) ## to create a special "matrix" object that can cache the inverse matrix.
}
## This function computes the inverse of the special "matrix" returned by makeCacheMatrix above. If the inverse has already been calculated (and the matrix has not changed), then cacheSolve should retrieve the inverse from the cache.
cacheSolve <- function(x, ...) {
m <- x$inverse_matrix
if(is.matrix(m)){ ## to check if the inverse matrix has already been calculated.
print('getting the inverse matrix')
return(m)
}
raw_matrix <- x$original_matrix ## to get the special "matrix" from makeCacheMatrix above.
inverse_matrix <- solve(raw_matrix) ## to compute the inverse of the special "matrix" returned above.
m <- inverse_matrix
x$inverse_matrix <- m ## to cache the inverse matrix.
m ## Return a matrix that is the inverse of 'x'.
}
}