我想在coursEra上运行这个R编程课程的例子。然而,当我试图确定矩阵是否为方形,我得到错误说:“在is.square.matrix错误(X):参数x不是矩阵”R:函数来确定矩阵是否是正方形
我的代码如下:
library(matrixcalc)
##non-square matrix
NCols <- sample(3:6, 1)
NRows <- sample(2:8, 1)
myMat <- matrix(runif(NCols*NRows), ncol=NCols)
is.square.matrix(myMat)
## functions
makeMatrix <- function(x = matrix()) {
m <- NULL
set <- function(y) {
x <<- y
m <<- NULL
}
get <- function() x
setInv <- if (is.square.matrix(x) == TRUE) {
function(solve) m <<- solve
}
{
function(ginv) m <<- ginv
}
getInv <- function() m
list(x, set = set, get = get,
setInv = setInv,
getInv = getInv)
}
cacheMatrix <- function(x, ...) {
m <- x$getInv()
if(!is.null(m)) {
message("getting cached data")
return(m)
}
data <- x$get()
m <- if (is.square.matrix(x) == TRUE) {
solve(data, ...)
}
{
ginv(data, ...)
}
x$setInv(m)
m
}
## run functions for matrix
notSquare <- makeMatrix(myMat)
cacheMatrix(notSquare)
##check
ginv(myMat)
然后我得到的错误:
Error in is.square.matrix(x) : argument x is not a matrix
我是初学者所以不知道如何让sentInv识别和检查矩阵是方形或没有。
布赖恩
请发表正确的代码。其他SO用户可能会感兴趣。 –