a test to exclude inf and nans from pinv(...) doesn't work
    4 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    genevois pierre
 el 26 de Sept. de 2018
  
    
    
    
    
    Comentada: genevois pierre
 el 26 de Sept. de 2018
            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 comentarios
Respuesta aceptada
  Walter Roberson
      
      
 el 26 de Sept. de 2018
        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.
Más respuestas (0)
Ver también
Categorías
				Más información sobre Linear Algebra en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

