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 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!