comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Matrix rank
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: Matrix rank [message #57618 is a reply to message #57548] Fri, 14 December 2007 10:17 Go to previous message
d.poreh is currently offline  d.poreh
Messages: 406
Registered: October 2007
Senior Member
On Dec 14, 7:06 pm, Steve Eddins <Steve.Edd...@mathworks.com> wrote:
> Vince Hradil wrote:
>> On Dec 14, 9:42 am, Wox <nom...@hotmail.com> wrote:
>>> On Fri, 14 Dec 2007 06:35:11 -0800 (PST), Vince Hradil
>
>>> <hrad...@yahoo.com> wrote:
>>>> IDL can do SVD, can you get the rank from that? Look up SVDC in the
>>>> docs.
>>> I could do this, but maybe there's a better way?
>
>>> ; A: integers
>>> ; B: floats
>>> A = [[ 0,0,1], $
>>> [ 0,1,0], $
>>> [ 0,0,0]]
>>> B = [0.25,0.5,1]
>
>>> ; Decompose A
>>> SVDC, A, W, U, V
>>> ; Solve A.X=B
>>> X=SVSOL(U, W, V, B)
>
>>> ; Check
>>> B2=A##X
>>> ind=where(total(abs(A),1,/pres) ne 0)
>
>>> if array_equal(B[ind],B2[ind]) then print,X
>
>> Well, w contains the singular values, the number of these that are non-
>> zero will be the rank:
>> idx = where(w ne 0, rank)
>> print, rank
>> 2
>
> Since this is all in floating-point, it's appropriate to use a tolerance
> instead of comparing exactly with 0. See, for example, the algorithm
> used in the MATLAB rank function, which uses a tolerance based on the
> size of the matrix and the maximum singular value. It's described here:
>
> http://www.mathworks.com/access/helpdesk/help/techdoc/ref/ra nk.html
>
> I assume this is straightforward to express in IDL.
>
> ---
> Steve Eddinshttp://blogs.mathworks.com/steve/- Hide quoted text -
>
> - Show quoted text -

but in MATLAB:
tol = max(size(A)) * norm(A) * eps.
why?
[Message index]
 
Read Message
Read Message
Read Message
Previous Topic: Re: Get pixel info from an geotiff ROI (lat long)
Next Topic: Re: Creating machine-specific, licensed IDL software

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Wed Dec 03 06:53:39 PST 2025

Total time taken to generate the page: 0.88567 seconds