0
[R重複我有這樣的代碼:While循環,錯誤
iit = 0
while(1)
{
SIGMABf=replicate(10, rnorm(10))
iit=iit+1
if(inherits(solve(SIGMABf), "error")){iit=iit-1;next}
if (iit==10) {break}
}
然而,繼承函數不是爲逆
有沒有辦法趕上錯誤和重複的工作?
[R重複我有這樣的代碼:While循環,錯誤
iit = 0
while(1)
{
SIGMABf=replicate(10, rnorm(10))
iit=iit+1
if(inherits(solve(SIGMABf), "error")){iit=iit-1;next}
if (iit==10) {break}
}
然而,繼承函數不是爲逆
有沒有辦法趕上錯誤和重複的工作?
try
功能就在這裏。您可以使用inherits
或更易於使用class
來查看操作是否失敗。
a <- try(solve(1))
class(a)
# matrix
b <- try(solve(0))
class(b)
# try-error
對於這種特殊情況下,你可以更好地使用det
,看是否矩陣是非奇異。如果det(A) != 0
,則A
是可逆的。
我的代碼沒有錯誤。 –