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

Home » Public Forums » archive » Re: data criteria
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: data criteria [message #67738] Mon, 24 August 2009 08:14 Go to previous message
Jean H. is currently offline  Jean H.
Messages: 472
Registered: July 2006
Senior Member
anil wrote:
> Hi all,
> I do not have much information about programming or algorithms
> (actually IDL is my first programming language), so my question may
> rather be simple but i could not figure it out , so here we go:
> .......
> So I want to take the lines from the first line up to 12.654200(since
> the difference is more than 0.3)
> What i have done so far is :
>
> pro a
> ;window, 0, retain=2
>
> file_array=file_search('/home/......../0587', '0587.*.txt',
> count=num_file)
> for i=0,num_file-1 do begin
> file=file_array(i)
>
> nrows = File_Lines(file)
>
> data=fltarr(5,nrows)
>
> OpenR, lun, file, /GET_LUN
> ReadF, lun, data
> Free_Lun, lun
>
> p=data(0,*)
> t=data(1,*)
> s=data(2,*)
> q=data(3,*)
> d=data(4,*)
> close,lun
> free_lun, lun
>
> 1st try
> ;for k=1,nrows-2 do begin k=k+1
> ;ml=where((d(k+1)-d(k)) gt 0.3,ss)
> ;endfor
>
> 2nd try
> ;k=1
> ;repeat begin ml=(d(k)-d(k-1))
> ;k=k+1
> ;endrep until (ml gt 0.3)
> ;print,d(0:k)
>
> free_lun,lun
> endfor
>
> close,/All
> end
>
> Neither of them work ! I used an if-then-else statement too but could
> not solve my problem.
> I would really appreciate any help. Thanks in advance,
> ANIL

Hi Anil,

the problem with your code is that you are not using not saving ML... so
you erase it in each loop.

You could do it this way:

toKeepIDX = where(d - shift(d,-1) ge 0.3)
goodData = data[*,toKeepIDX]
and/or: goodA = a[toKeepIDX] goodB = b[toKeeIDX] etc



In the first line, you compare each entry with its previous one and you
select ALL entries according to your criterion. Next, you extract the
data itself.

This will bring a problem for the first entry of course. Also, keep in
mind the case where you don't have the .3 of different between 3
consecutive values ( 1, 1.01, 1.02, 1.03 etc)

Jean
[Message index]
 
Read Message
Read Message
Previous Topic: Re: Digits in IDL
Next Topic: Re: SKIP the window "press click to continue" using the VIRTUAL MACHINE

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

Current Time: Wed Oct 08 19:17:44 PDT 2025

Total time taken to generate the page: 0.00468 seconds