0

我想做的是使用 R 中的命令 chol() 测试矩阵是否为正定矩阵。但是,如果 chol() 命令产生错误,我希望它输出 false 而不是产生错误并停止代码从运行。是否有捷径可寻?我一直在搞乱命令 try() 但它仍然给我一个错误。例如,如果我有矩阵:

mat=matrix(c(1,2,3,1,2,3,5,5,5),nrow=3,ncol=3,byrow=F)
try(chol(mat))

这仍然会产生错误“chol.default(mat) 中的错误:3 阶的前导次要不是正定的。”

我怎样才能让它产生 FALSE 而不是这个错误?

4

1 回答 1

3

使用tryCatch, 并定义一个处理程序以在发生错误时使用:

tryCatch(chol(mat), error=function(e) FALSE)
于 2013-03-07T04:30:41.713 回答