Mercurial > octave-nkf
comparison liboctave/dDiagMatrix.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 |
comparison
equal
deleted
inserted
replaced
8839:fcba62cc4549 | 8840:c690e3772583 |
---|---|
296 info = -1; | 296 info = -1; |
297 return *this; | 297 return *this; |
298 } | 298 } |
299 else | 299 else |
300 retval.elem (i, i) = 1.0 / elem (i, i); | 300 retval.elem (i, i) = 1.0 / elem (i, i); |
301 } | |
302 | |
303 return retval; | |
304 } | |
305 | |
306 DiagMatrix | |
307 DiagMatrix::pseudo_inverse (void) const | |
308 { | |
309 octave_idx_type r = rows (); | |
310 octave_idx_type c = cols (); | |
311 octave_idx_type len = length (); | |
312 | |
313 DiagMatrix retval (c, r); | |
314 | |
315 for (octave_idx_type i = 0; i < len; i++) | |
316 { | |
317 if (elem (i, i) != 0.0) | |
318 retval.elem (i, i) = 1.0 / elem (i, i); | |
319 else | |
320 retval.elem (i, i) = 0.0; | |
301 } | 321 } |
302 | 322 |
303 return retval; | 323 return retval; |
304 } | 324 } |
305 | 325 |