Mercurial > hg > octave-nkf
diff liboctave/CDiagMatrix.cc @ 8840:c690e3772583
support diagonal matrices in pinv
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Mon, 23 Feb 2009 14:54:56 +0100 |
parents | 20dfb885f877 |
children | eb63fbe60fab |
line wrap: on
line diff
--- a/liboctave/CDiagMatrix.cc +++ b/liboctave/CDiagMatrix.cc @@ -387,6 +387,26 @@ return retval; } +ComplexDiagMatrix +ComplexDiagMatrix::pseudo_inverse (void) const +{ + octave_idx_type r = rows (); + octave_idx_type c = cols (); + octave_idx_type len = length (); + + ComplexDiagMatrix retval (c, r); + + for (octave_idx_type i = 0; i < len; i++) + { + if (elem (i, i) != 0.0) + retval.elem (i, i) = 1.0 / elem (i, i); + else + retval.elem (i, i) = 0.0; + } + + return retval; +} + bool ComplexDiagMatrix::all_elements_are_real (void) const {