我正在关注Coursera上的一个数据科学课程,我有一个关于其中一个分配的问题,我必须对Matrix进行求逆,然后缓存该结果。R编程:缓存矩阵的逆
基本上我一直googling了,我找到了答案,但有部分答案我还不明白。因为这个原因,我不想提交我的任务,因为我不想提交任何我不完全理解的东西。
从下面的代码我不明白的部分是setInverse定义的部分。 'function(inverse)inv'来自哪里?特别是'反向'从未被定义过?
之后返回一个列表,这对我来说也没什么意义吗?
如果有人可以花时间向我解释这个功能,我会非常感激!
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
cacheSolve <- function(x, ...) {
## Return a matrix that is the inverse of 'x'
inv <- x$getInverse()
if (!is.null(inv)) {
message("getting cached data")
return(inv)
}
mat <- x$get()
inv <- solve(mat, ...)
x$setInverse(inv)
inv
}
如果你只需要反转一个矩阵,你必须使用'solve'函数(参见你在@Roland答案中函数的改变)。所以,如果'a'是一个矩阵,只是'b <-solve(a)'将得到'a'的逆矩阵。真的没有得到上面的代码与反转矩阵有什么关系。 – nicola
我编辑了我的代码。基本上第一个功能是用来执行'缓存'功能。然后第二个函数使用'求解'来计算逆。 – Mick