a test to exclude inf and nans from pinv(...) doesn't work
1 次查看(过去 30 天)
显示 更早的评论
Hello,
having this error :
Error using svd
Input to SVD must not contain NaN or Inf.
Error in pinv (line 29)
[U,S,V] = svd(A,0);
I tried to add this test before calling pinv(gradVcpr) :
if any(isnan(gradVcpr) | ~isfinite(gradVcpr)) % Error : gradVcpr is NaN or infinite
......
return % stop executing the function before call to pinv
end
But the test doesn't work : I still have the same error. Can somebody help me ?
Thank you !
0 个评论
采纳的回答
Walter Roberson
2018-9-26
if any(isnan(gradVcpr(:))) || any(~isfinite(gradVcpr(:))))
You were missing the fact that any() is a matrix operation that processes only the first non-scalar dimension. Your code was equivalent to
if all(any(isnan(gradVcpr) | ~isfinite(gradVcpr)))
but that was false for some of the columns so the all() failed.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Descriptive Statistics 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!