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

59 visualizaciones (últimos 30 días)
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 comentario
infinity
infinity el 26 de Jun. de 2019
Editada: infinity el 26 de Jun. de 2019
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".

Iniciar sesión para comentar.

Respuesta aceptada

Shashank Sharma
Shashank Sharma el 27 de Jun. de 2019
Editada: Shashank Sharma el 27 de Jun. de 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 comentarios
MatLabMcLovinPotato
MatLabMcLovinPotato el 17 de En. de 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
Suddhasattwa Das el 5 de Abr. de 2021
I dont get a numeric answer. I get
sparse logical
All zero sparse: 1×1

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Eigenvalues en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by