Error using svd Input to SVD must not contain NaN or Inf.
36 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Yapo OBOUE
am 26 Jun. 2019
Kommentiert: Suddhasattwa Das
am 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 Kommentar
Akzeptierte Antwort
Shashank Sharma
am 27 Jun. 2019
Bearbeitet: Shashank Sharma
am 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 Kommentare
MatLabMcLovinPotato
am 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
am 5 Apr. 2021
I dont get a numeric answer. I get
sparse logical
All zero sparse: 1×1
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Linear Algebra finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!