Returning start/end indices


 
Thread Tools Search this Thread
Top Forums Programming Returning start/end indices
# 1  
Old 01-13-2011
Returning start/end indices

I have an array of distances and a len, for example

Code:
len = 323
dist = [187 243 323 476 500 670 734 862]

I want to calculate the start and end index values around each distance in the array with a length of len from it. Values in dist are stored in ascending order.
# 2  
Old 01-13-2011
What language?
# 3  
Old 01-13-2011
C will do

---------- Post updated at 08:07 AM ---------- Previous update was at 07:31 AM ----------

Have created a subroutine in fortran doing something like this.

Code:
    SUBROUTINE SWNA3D_IDXWIN(IVA, IVB, V, WLEN, N)
    IMPLICIT NONE
    INTEGER    N
    REAL    V(N)
    INTEGER    IVA(N)
    INTEGER    IVB(N)
    REAL    WLEN
C
    REAL, ALLOCATABLE :: VA(:)
    REAL, ALLOCATABLE :: VB(:)
    INTEGER I
    LOGICAL    L_ASCENDING
C
    ALLOCATE(VA(:))
    ALLOCATE(VB(:))
C
    L_ASCENDING = .TRUE.
    DO I = 1, N-1
      IF (V(I) > V(I+1)) THEN
        L_ASCENDING = .FALSE.
        EXIT
      ENDIF
    ENDDO
    IF (L_ASCENDING == .FALSE.) PRINT *, 'V not ascending order'
C
    DO I = 1, N
      VA(I) = V(i) - (WLEN/2.0)
      VB(I) = V(i) + (WLEN/2.0)
C
      J = 1
      ISTART = 0
      DO WHILE ((V(J) < VA(I)).AND.(J <= N))
        ISTART = ISTART + 1
        J = J + 1
      END DO
      ISTART = ISTART + 1
C
      J = 1
      IEND = 0
      DO WHILE ((V(J) <= VA(I)).AND.(J <= N))
        IEND = IEND + 1
        J = J + 1
      END DO

    ENDDO

    RETURN
    END SUBROUTINE SWNA3D_IDXWIN


Last edited by kristinu; 01-13-2011 at 10:46 AM..
# 4  
Old 01-13-2011
For the values you provided post #1, what is the expected output?
# 5  
Old 01-13-2011
Here is an example

Code:
vlen = 10;
lwin = 250;
v = [187 243 323 476 500 670 734 862 912 1023];

for i = 1:vlen
  d(i,1) = v(i) - (lwin/2);
  d(i,2) = v(i) + (lwin/2);
end

This should give the following result

Code:
d =      62         312
         118         368
         198         448
         351         601
         375         625
         545         795
         609         859
         737         987
         787        1037
         898        1148

For the first set of values 62 and 312, the indices should be 1 and 2
For 118 and 368, indices should be 1 and 3
For 198 and 448, indices should be 2 and 4

and so on
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Splitting week start date and end date based on custom period start dates

Below are my custom period start and end dates based on a calender, these dates are placed in a file, for each period i need to split into three weeks for each period row, example is given below. Could you please help out to achieve solution through shell script.. File content: ... (2 Replies)
Discussion started by: nani2019
2 Replies

2. Shell Programming and Scripting

Split a file by start and end row.

I have a file which looks something as following, I would like to split to several files, The start and end of each file is 'FILE' and end with 'ASCII... ' . At the same time for each file in the first column add 100 and also second column add 100 the rest of the column as it is , see example of... (2 Replies)
Discussion started by: tk2000
2 Replies

3. Shell Programming and Scripting

How can I search with start and end criteria?

Hello I'm using cygwin and wouldlike extract information from an xml file according specific values, but don't know how. Let's say in a file content looks like this: <tab> SURNAME=Mustermann NAME=Max CUSTOMER SINCE= 18.01.2000 ADDRESS=Birmingham ... (2 Replies)
Discussion started by: witchblade
2 Replies

4. Shell Programming and Scripting

Get the lines from logfile within start and end date

Hi guys, I am having the below logfile,date in yyyy-mm-dd 2013-08-02 *some content* 2013-08-02 *some content* 2013-08-02 *some content* 2013-08-03 *some content* 2013-08-05 *some content* from the above logfile i need to get the lines between the two timestamps,if i give... (5 Replies)
Discussion started by: mohanalakshmi
5 Replies

5. Shell Programming and Scripting

Remove lines between the start string and end string including start and end string Python

Hi, I am trying to remove lines once a string is found till another string is found including the start string and end string. I want to basically grab all the lines starting with color (closing bracket). PS: The line after the closing bracket for color could be anything (currently 'more').... (1 Reply)
Discussion started by: Dabheeruz
1 Replies

6. Shell Programming and Scripting

Calculating start and end of UK summertime

I have a need to calculate when British Summer Time starts and ends. After messing around, the following seems to work in Bash. echo `date +%Y`-03-`cal 3 \`date +%Y\` | grep -oE "^]{2}" | tail -1`T01:00:00Zand echo `date +%Y`-03-`cal 10 \`date +%Y\` | grep -oE "^]{2}" | tail ... (10 Replies)
Discussion started by: esb4me
10 Replies

7. Shell Programming and Scripting

Perl regex using /START/../END/

I need help with perl code. I have a data file with lots of data example: data.txt file START DATA1 sjdfh kjhdf DATA2 sdkjfhk jds dshfgdf ... Around 20 - 30 lines END LDDDD awdkjasd a sdkahgdk jasdh SOME CRAP Some EMPTY lines etc START DATA1 sjdfh kjhdf DATA2 sdkjfhk jds... (2 Replies)
Discussion started by: chakrapani
2 Replies

8. Shell Programming and Scripting

can I specifiy the start and end times manually

Hi I have a ksh script which fetches data from a db using a number of .arc files and creates CSV files for them and puts them on the server. Question is, how can I specifiy the start and stop times specifically so that data is fetched for a certain period? # Get the current time as the... (1 Reply)
Discussion started by: shajju
1 Replies

9. Shell Programming and Scripting

searching between start and end time

Hello All, Below mentioned is my log file. I want to make a script which ask for start time and then end time and then search particular word between those lines. Like start time:2 end time: 4 and then search all values starting from cell 84 between this time. Please Help ... (2 Replies)
Discussion started by: wakhan
2 Replies

10. UNIX for Advanced & Expert Users

Complete dump from start to the end

Hi all... I was accidentally wipe off my iphone and lost all the data in it:(. So I tried to use dd to create an image from iphone and ssh to the Mac by using: dd if=/dev/disk | ssh user@MacIP of='image.img' Then I mount this image on Mac/Windows and run recovery software because most of the... (1 Reply)
Discussion started by: seraphc
1 Replies
Login or Register to Ask a Question