MATLAB Answers

0

Error using svd Input to SVD must not contain NaN or Inf.

Asked by Yapo OBOUE on 26 Jun 2019
Latest activity Edited by Shashank Sharma on 27 Jun 2019
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

Hello,
According to the error, it could be seen that the matrix "din" contain "NaN" or "Inf". To solve your problem, you need to check why do you have NaN or Inf in the matrix "din".

Sign in to comment.

Tags

1 Answer

Answer by Shashank Sharma on 27 Jun 2019
Edited by Shashank Sharma on 27 Jun 2019
 Accepted Answer

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.

  0 Comments

Sign in to comment.