Error using svd Input to SVD must not contain NaN or Inf.
35 views (last 30 days)
Show older comments
Yapo OBOUE
on 26 Jun 2019
Commented: Suddhasattwa Das
on 5 Apr 2021
Hello everyone, I meet a problem with my code. when I run this code below, I get this error :
Error using svd Input to SVD must not contain NaN or Inf.
Error in fxy_I2_5Ddamp_nx_ny>P_RD (line ....)
[U,S,V] = svd(din);
How do I solve this problem ? Thanks.
function [dout]=P_RD(din,N,K)
[U,S,V] = svd(din);
s = SoftTh(diag(S), 2);
j=1:N
S=diag(s);
for j=1:N
S(j,j)=S(j,j)*(1-S(N+1,N+1)^K/S(j,j)^K);
end
dout=U(:,1:N)*S(1:N,1:N)*(V(:,1:N)');
return
1 Comment
Accepted Answer
Shashank Sharma
on 27 Jun 2019
Edited: Shashank Sharma
on 27 Jun 2019
Run any(any(isnan(din))) and any(any(isinf(din))). If the output is 1 it means your matrix din has an infinity value or a not a number value. This is causing the svd function to error out.
2 Comments
MatLabMcLovinPotato
on 17 Jan 2021
I was able to create a sset sys, went to make it again with the same data and got this error about the NaN and Inf. I tried your suggestion (thank you!) and have 0 for both NaN and Inf. Yet still getting the same error?
Suddhasattwa Das
on 5 Apr 2021
I dont get a numeric answer. I get
sparse logical
All zero sparse: 1×1
More Answers (0)
See Also
Categories
Find more on Linear Algebra in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!