Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.graphics.apps.gnuplot > #2898

loop question

Newsgroups comp.graphics.apps.gnuplot
Date 2015-05-10 08:03 -0700
Message-ID <ae04de20-32b5-457d-b050-8dbaf02c7961@googlegroups.com> (permalink)
Subject loop question
From s0198362 <adrian.h.hill@gmail.com>

Show all headers | View raw


Hi, I am trying to simplify a script of mine.  Currently I evaluate a series of data sets over a specific xrange for the max value.  I then output the max value in each data set to a txt file, which will be plotted later.  This is then repeated over various different x-ranges.

I currently have a long script where I have to reset things and change output titles to make it work correctly.  I am now trying to simplify the script but can't seem to get it to work.  I have attached the relevant parts of the scripts below.  If anyone has tips on how to get my simple one to work I would be very thankful.

Currently what it does is just print the same output for all files in my simplification.  Something must be logged in the memory somewhere.

I realise it may be confusing, so please do ask for clarification if needed.

Thanks

Adrian

####  This works, but is long and cumbersome ###################################

list = system('dir /b *.xy')
FILES = words(list)
FILE(i) = word(list,i)
#Creates a temporary list of all files in the directory with extension .xy

#### 332 ####

set xrange [12.8:12.9]
set yrange [*:*]

do for [i=1:FILES:1] {
        stats FILE(i) every ::2301::2341 u 2 name 'evaluateA'
        scan_number =FILE(i)
        maximumA = evaluateA_max

        if (i==1){
        set print '332_intensity.txt'
        } else {
        set print '332_intensity.txt' append
        }
        print scan_number[16:21] , ' ', maximumA
        unset print
}

reset
clear

#### 051####

set xrange [12.36:12.48]
set yrange [*:*]

do for [i=1:FILES:1] {
        stats FILE(i) every ::2301::2341 u 2 name 'evaluateB'
        scan_number =FILE(i)
        maximumB = evaluateB_max

        if (i==1){
        set print '051_intensity.txt'
        } else {
        set print '051_intensity.txt' append
        }
        print scan_number[16:21] , ' ', maximumB
        unset print
}

reset
clear

################################################################################



####  My attemped simplification ###############################################


list = system('dir /b *.xy')
FILES = words(list)
FILE(i) = word(list,i)
#Creates a temporary list of all files in the directory with extension .xy

stth = "12.80 12.36 12.57 12.70 12.90" # start tth
etth = "12.90 12.48 12.67 12.80 13.08" # end tth
bragg = "332 051 151 303 133"                                # index
#two-theta ranges and index of interest

do for [j=1:words(stth):1] {
        set xrange [word(stth,j):word(etth,j)]
        show xrange
        set yrange [*:*]


        do for [i=1:FILES:1] {
                stats FILE(i) every ::2301::2341 u 2 name 'evaluate'
                scan_number =FILE(i)
                maximum = evaluate_max

                #print word(bragg,j)

                if (i==1){
                        set print word(bragg,j)."_Intensity.txt"
                } else {
                        set print word(bragg,j)."_Intensity.txt" append
                }

                print scan_number[16:21] , ' ', maximum
        }
        reset
        clear
}


################################################################################

Back to comp.graphics.apps.gnuplot | Previous | Next | Find similar | Unroll thread


Thread

loop question s0198362 <adrian.h.hill@gmail.com> - 2015-05-10 08:03 -0700

csiph-web