use*_*894 2 error-handling r matrix
我想做的是使用 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))
Run Code Online (Sandbox Code Playgroud)
这仍然会产生错误“chol.default(mat) 中的错误:3 阶的前导次要不是正定的。”
我怎样才能让它产生 FALSE 而不是这个错误?
使用tryCatch,并定义在发生错误时使用的处理程序:
tryCatch(chol(mat), error=function(e) FALSE)
Run Code Online (Sandbox Code Playgroud)