Schrift
[thread]13126[/thread]

daten auslesen benötige hilfe (Seite 2)

Leser: 1


<< |< 1 2 3 >| >> 24 Einträge, 3 Seiten
quant82
 2009-02-11 12:53
#118790 #118790
User since
2007-07-27
13 Artikel
BenutzerIn
[default_avatar]
hi

danke, hab die 2. version genommen, diese läuft auch :) nun bin ich aber nicht ganz sicher ob er wirklich nur das "match" schreibt wenn er in einem event 2 mal die 27 findet.

im prinzip ist die logic so; ich mach mal ein beispiel: die daten sehen so aus:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
0.20000000E+03 -0.29270856E+01 -0.21151216E+01 -0.10648322E+02  0.95357633E+00 -0.29205595E-01 -0.38037133E-01 -0.28511840E+00  0.90868890E+00          1  1  1        0    0   0
0.20000000E+03 -0.26733028E+01 -0.48575282E+01 -0.11135421E+02 0.93966054E+00 -0.16105977E+00 -0.78331655E-01 -0.14366491E+00 0.91117848E+00 1 1 1 0 0 0
0.20000000E+03 0.17302826E+01 -0.19563007E+01 -0.59252391E+01 0.93977688E+00 -0.16357943E+00 -0.15714093E+00 -0.14424081E+00 0.90051300E+00 1 1 1 0 0 0
0.20000000E+03 0.53763010E+01 0.40176612E+01 -0.96760700E+01 0.93947602E+00 0.89151978E-01 0.10288793E+00 -0.14219121E+00 0.91862008E+00 1 1 1 0 0 0
0.20000000E+03 0.13783666E+01 -0.58041928E+00 -0.95032043E+01 0.93026380E+00 -0.17300076E+00 0.10975707E+00 -0.48033855E-01 0.90614989E+00 1 1 1 0 0 0
0.20000000E+03 -0.31323453E+01 0.40387637E+01 -0.12732230E+02 0.94102031E+00 -0.86479053E-01 0.15959552E+00 -0.15744126E+00 0.90982532E+00 1 1 1 0 0 0
0.20000000E+03 -0.15521204E+01 0.19854018E+01 -0.11560486E+02 0.92314641E+00 0.59058675E-01 0.14967610E+00 0.24507514E-01 0.90868466E+00 1 1 1 0 0 0
0.20000000E+03 0.19887119E+01 -0.24635994E+01 -0.15135553E+02 0.93957680E+00 -0.99614212E-01 0.21350324E-01 -0.14347344E+00 0.92295239E+00 1 1 1 0 0 0
0.20000000E+03 0.60489130E+00 0.58270093E+01 -0.12464639E+02 0.91871359E+00 0.29376586E-01 -0.43795238E-01 0.70628787E-01 0.91447538E+00 1 1 1 0 0 0
0.20000000E+03 0.50614961E+00 0.71518040E+00 -0.12451708E+02 0.91759956E+00 -0.27179789E-01 -0.99818035E-01 0.80847592E-01 0.90815760E+00 1 1 1 0 0 0
0.20000000E+03 -0.88474227E+00 -0.40949876E+00 -0.10320679E+02 0.91603955E+00 -0.16107823E+00 0.56199227E-01 0.94014343E-01 0.89508950E+00 1 1 1 0 0 0
0.20000000E+03 -0.22474935E+01 0.22308770E+01 -0.17070681E+02 0.94259348E+00 -0.58616494E-01 0.12328840E+00 -0.17404406E+00 0.91627245E+00 1 1 1 0 0 0
0.20000000E+03 0.27892586E+01 0.14545588E+01 -0.13644148E+02 0.93678854E+00 0.11022103E+00 0.17668166E+00 -0.11424044E+00 0.90617703E+00 27 1 1 0 0 0
0.20000000E+03 -0.69361249E+01 0.18012692E+01 -0.94225583E+01 0.93253996E+00 -0.15078199E+00 0.22858809E-01 -0.70882114E-01 0.91725066E+00 1 1 1 0 0 0
0.20000000E+03 0.34406811E+00 -0.14007133E+01 -0.10356330E+02 0.93102123E+00 -0.13288885E+00 0.18630400E+00 -0.55936836E-01 0.90072359E+00 1 1 1 0 0 0
0.20000000E+03 0.51715539E+01 0.78188760E+00 -0.16728107E+02 0.95693796E+00 0.67010637E-01 -0.12448875E+00 -0.31529396E+00 0.89237442E+00 1 1 1 0 0 0
0.20000000E+03 -0.64196095E+01 -0.31764452E+01 -0.10456176E+02 0.94218049E+00 0.49204063E-01 -0.15718122E+00 -0.16945017E+00 0.91206564E+00 1 1 1 0 0 0
0.20000000E+03 -0.15391700E+00 -0.39824726E+01 -0.10655203E+02 0.92818166E+00 -0.10123101E+00 0.58024343E-01 -0.25898336E-01 0.92045419E+00 1 1 1 0 0 0
0.20000000E+03 -0.11089038E+00 0.17230361E+01 -0.10826846E+02 0.95578510E+00 -0.63354550E-01 0.10324486E+00 -0.30501011E+00 0.89767516E+00 1 1 1 0 0 0
0.20000000E+03 -0.43221095E+01 -0.24552375E+01 -0.11137517E+02 0.94008237E+00 -0.14728988E+00 -0.21262593E-01 -0.14828444E+00 0.91630791E+00 1 1 1 0 0 0
0.20000000E+03 -0.48302668E+01 -0.24780686E+01 -0.10354653E+02 0.94997021E+00 0.55344983E-01 0.61241299E-01 -0.24916071E+00 0.91298892E+00 1 1 1 0 0 0
0.20000000E+03 -0.48363483E+01 0.14021897E+01 -0.11339558E+02 0.94216741E+00 -0.40857416E-01 0.10035224E+00 -0.17001969E+00 0.92034386E+00 1 1 1 0 0 0
0.20000000E+03 -0.15351525E+01 -0.10540834E+00 -0.14300028E+02 0.93445803E+00 -0.95186443E-01 -0.34158155E-02 -0.90580458E-01 0.92516748E+00 1 1 1 0 0 0
0.20000000E+03 0.50365428E+00 -0.55848534E+01 -0.10668460E+02 0.92319853E+00 -0.43292780E-01 -0.30070721E-01 0.25565848E-01 0.92133784E+00 1 1 1 0 0 0
0.20000000E+03 0.45010902E+01 0.47995627E+00 -0.16285988E+02 0.94523001E+00 -0.10156527E+00 -0.68855515E-01 -0.20099211E+00 0.91542632E+00 1 1 1 0 0 0
0.20000000E+03 -0.35173355E+01 0.43546196E+01 -0.62668400E+01 0.94408646E+00 0.13315282E+00 -0.25129069E-01 -0.18922045E+00 0.91495012E+00 1 1 1 0 0 0
0.20000000E+03 -0.48685988E+00 -0.44636500E+01 -0.88157649E+01 0.92129893E+00 -0.14567920E-01 -0.94590089E-01 0.44269600E-01 0.91524446E+00 1 1 1 0 0 0
0.20000000E+03 0.54805378E+00 0.20526895E+01 -0.13533425E+02 0.93336272E+00 -0.78258012E-01 0.22394290E-01 -0.79220756E-01 0.92642551E+00 27 1 1 0 0 0
0.20000000E+03 -0.75143340E+01 -0.24870538E+01 -0.12839871E+02 0.92714281E+00 -0.75542716E-02 -0.11321098E+00 -0.15225440E-01 0.92004792E+00 1 1 1 0 0 0
0.20000000E+03 0.82879156E+00 -0.33991323E+01 -0.96634370E+01 0.92799461E+00 0.61195684E-01 -0.15915225E+00 -0.24591406E-01 0.91186343E+00 1 1 1 0 0 0
0.20000000E+03 -0.10461434E+01 -0.38891620E+01 -0.11003662E+02 0.91327909E+00 0.88326826E-01 -0.15481340E+00 0.11991523E+00 0.88765433E+00 1 1 1 0 0 0
0.20000000E+03 -0.16480245E+01 0.13040287E+01 -0.14851297E+02 0.93866732E+00 0.25484131E+00 0.27133495E-01 -0.13272989E+00 0.89319583E+00 1 1 1 0 0 0
0.20000000E+03 0.20544811E+01 -0.37328739E+01 -0.89732903E+01 0.94672471E+00 0.17481860E+00 0.79849264E-02 -0.21493935E+00 0.90524221E+00 1 1 1 0 0 0
0.20000000E+03 -0.58784571E+01 -0.20096614E+01 -0.15760500E+02 0.93070852E+00 -0.87158053E-01 0.12074983E+00 -0.52073580E-01 0.91724023E+00 1 1 1 0 0 0
0.20000000E+03 0.19505627E+01 -0.29810652E+01 -0.66176961E+01 0.92810231E+00 -0.15806727E+00 -0.12180830E+00 -0.26110811E-01 0.90601854E+00 1 1 1 0 0 0
0.20000000E+03 -0.57627223E+01 -0.35357324E+00 -0.13466211E+02 0.93238661E+00 -0.16639149E+00 -0.10793860E+00 -0.69518848E-01 0.90839146E+00 1 1 1 0 0 0
0.20000000E+03 -0.99912719E+00 -0.57163094E+01 -0.13836855E+02 0.94571301E+00 0.10624879E+00 -0.46232141E-01 -0.20597764E+00 0.91570742E+00 1 1 1 0 0 0
0.20000000E+03 0.50960739E+01 0.17827336E+01 -0.11463369E+02 0.94767916E+00 -0.46100839E-01 0.17008171E+00 -0.22439247E+00 0.90370943E+00 1 1 1 0 0 0
0.20000000E+03 -0.25618614E+01 -0.18039520E+01 -0.14442667E+02 0.92156572E+00 0.15644118E+00 -0.10867593E+00 0.39449707E-01 0.90080120E+00 1 1 1 0 0 0
0.20000000E+03 -0.10222947E+01 0.29455479E+01 -0.10997571E+02 0.93079205E+00 0.20065682E+00 -0.10564569E-01 -0.53346262E-01 0.90727793E+00 1 1 1 0 0 0
0.20000000E+03 0.50434254E+01 -0.50830056E+01 -0.11199384E+02 0.94273064E+00 -0.12948776E+00 -0.80354120E-01 -0.17521549E+00 0.91368306E+00 1 1 1 0 0 0
0.20000000E+03 -0.29305813E+01 0.32581233E+01 -0.17309784E+02 0.94091563E+00 -0.18720564E-01 -0.33616850E-03 -0.15763029E+00 0.92742889E+00 1 1 1 0 0 0
0.20000000E+03 -0.97058857E-01 -0.44715119E+01 -0.11856953E+02 0.94040679E+00 0.67383007E-01 0.43831177E-01 -0.15215429E+00 0.92452819E+00 1 1 1 0 0 0
0.20000000E+03 -0.14453983E+01 0.37528158E+00 -0.14829019E+02 0.91717879E+00 0.43580485E-01 0.21237806E+00 0.81112468E-01 0.88748746E+00 1 1 1 0 0 0
0.20000000E+03 -0.35456543E+01 -0.73288844E+00 -0.12975973E+02 0.93616786E+00 0.13391486E+00 -0.62150570E-01 -0.10815652E+00 0.91810487E+00 1 1 1 0 0 0
0.20000000E+03 -0.16196486E+01 -0.10356602E+01 -0.12996351E+02 0.92345416E+00 -0.21284027E+00 0.68088925E-01 0.19775772E-01 0.89578983E+00 1 1 1 0 0 0
0.20000000E+03 -0.41179207E+01 0.22213825E+01 -0.12307120E+02 0.93283836E+00 0.97267903E-01 -0.11388139E+00 -0.73937244E-01 0.91776396E+00 1 1 1 0 0 0
0.20000000E+03 -0.30804066E+00 -0.99761231E+00 -0.15092308E+02 0.91377433E+00 -0.16665704E-01 0.98530006E-01 0.11799875E+00 0.90059642E+00 1 1 1 0 0 0
0.20000000E+03 -0.21253162E+01 -0.56530681E+01 -0.88739360E+01 0.92226724E+00 0.27200591E-01 0.61572942E-01 0.34875847E-01 0.91914604E+00 1 1 1 0 0 0
0.20000000E+03 0.12771634E+01 -0.53560920E+01 -0.12834729E+02 0.92774889E+00 0.68438055E-01 -0.20091783E+00 -0.22766439E-01 0.90285545E+00 1 1 1 0 0 0


die 27 steht ziemlich weit rechts... und das event ist stark gekürzt,normal sind es 10 mal so viele zeilen

ich hab ein beispiel genommen wo 2 mal die 27 drinne steht... und ich will einen counter hochzählen lassen der mir hinther sagt wieviele events es gab bei denen 2 mal die 27 vorkam... und das bei vlt 1 mio events oder so

lg
styx-cc
 2009-02-11 16:13
#118792 #118792
User since
2006-05-20
533 Artikel
BenutzerIn

user image
So kannst du in diesem Fall zum Beispiel rausfinden, wie oft die 27 in deinen Daten enthalten ist:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/usr/bin/perl -w
use strict;

my $nr = 27;
local $/ = undef;
my $data = <DATA>;
my @match = $data =~ m/(?<!\d)$nr(?!\d)/sg;

print "Nr. $nr kommt ". scalar @match ." mal in dem Muster vor.\n";

__DATA__
0.20000000E+03 -0.29270856E+01 -0.21151216E+01 -0.10648322E+02 0.95357633E+00 -0.29205595E-01 -0.38037133E-01 -0.28511840E+00 0.90868890E+00 1 1 1 0 0 0
0.20000000E+03 -0.26733028E+01 -0.48575282E+01 -0.11135421E+02 0.93966054E+00 -0.16105977E+00 -0.78331655E-01 -0.14366491E+00 0.91117848E+00 1 1 1 0 0 0
0.20000000E+03 0.17302826E+01 -0.19563007E+01 -0.59252391E+01 0.93977688E+00 -0.16357943E+00 -0.15714093E+00 -0.14424081E+00 0.90051300E+00 1 1 1 0 0 0
0.20000000E+03 0.53763010E+01 0.40176612E+01 -0.96760700E+01 0.93947602E+00 0.89151978E-01 0.10288793E+00 -0.14219121E+00 0.91862008E+00 1 1 1 0 0 0
0.20000000E+03 0.13783666E+01 -0.58041928E+00 -0.95032043E+01 0.93026380E+00 -0.17300076E+00 0.10975707E+00 -0.48033855E-01 0.90614989E+00 1 1 1 0 0 0
0.20000000E+03 -0.31323453E+01 0.40387637E+01 -0.12732230E+02 0.94102031E+00 -0.86479053E-01 0.15959552E+00 -0.15744126E+00 0.90982532E+00 1 1 1 0 0 0
0.20000000E+03 -0.15521204E+01 0.19854018E+01 -0.11560486E+02 0.92314641E+00 0.59058675E-01 0.14967610E+00 0.24507514E-01 0.90868466E+00 1 1 1 0 0 0
0.20000000E+03 0.19887119E+01 -0.24635994E+01 -0.15135553E+02 0.93957680E+00 -0.99614212E-01 0.21350324E-01 -0.14347344E+00 0.92295239E+00 1 1 1 0 0 0
0.20000000E+03 0.60489130E+00 0.58270093E+01 -0.12464639E+02 0.91871359E+00 0.29376586E-01 -0.43795238E-01 0.70628787E-01 0.91447538E+00 1 1 1 0 0 0
0.20000000E+03 0.50614961E+00 0.71518040E+00 -0.12451708E+02 0.91759956E+00 -0.27179789E-01 -0.99818035E-01 0.80847592E-01 0.90815760E+00 1 1 1 0 0 0
0.20000000E+03 -0.88474227E+00 -0.40949876E+00 -0.10320679E+02 0.91603955E+00 -0.16107823E+00 0.56199227E-01 0.94014343E-01 0.89508950E+00 1 1 1 0 0 0
0.20000000E+03 -0.22474935E+01 0.22308770E+01 -0.17070681E+02 0.94259348E+00 -0.58616494E-01 0.12328840E+00 -0.17404406E+00 0.91627245E+00 1 1 1 0 0 0
0.20000000E+03 0.27892586E+01 0.14545588E+01 -0.13644148E+02 0.93678854E+00 0.11022103E+00 0.17668166E+00 -0.11424044E+00 0.90617703E+00 27 1 1 0 0 0
0.20000000E+03 -0.69361249E+01 0.18012692E+01 -0.94225583E+01 0.93253996E+00 -0.15078199E+00 0.22858809E-01 -0.70882114E-01 0.91725066E+00 1 1 1 0 0 0
0.20000000E+03 0.34406811E+00 -0.14007133E+01 -0.10356330E+02 0.93102123E+00 -0.13288885E+00 0.18630400E+00 -0.55936836E-01 0.90072359E+00 1 1 1 0 0 0
0.20000000E+03 0.51715539E+01 0.78188760E+00 -0.16728107E+02 0.95693796E+00 0.67010637E-01 -0.12448875E+00 -0.31529396E+00 0.89237442E+00 1 1 1 0 0 0
0.20000000E+03 -0.64196095E+01 -0.31764452E+01 -0.10456176E+02 0.94218049E+00 0.49204063E-01 -0.15718122E+00 -0.16945017E+00 0.91206564E+00 1 1 1 0 0 0
0.20000000E+03 -0.15391700E+00 -0.39824726E+01 -0.10655203E+02 0.92818166E+00 -0.10123101E+00 0.58024343E-01 -0.25898336E-01 0.92045419E+00 1 1 1 0 0 0
0.20000000E+03 -0.11089038E+00 0.17230361E+01 -0.10826846E+02 0.95578510E+00 -0.63354550E-01 0.10324486E+00 -0.30501011E+00 0.89767516E+00 1 1 1 0 0 0
0.20000000E+03 -0.43221095E+01 -0.24552375E+01 -0.11137517E+02 0.94008237E+00 -0.14728988E+00 -0.21262593E-01 -0.14828444E+00 0.91630791E+00 1 1 1 0 0 0
0.20000000E+03 -0.48302668E+01 -0.24780686E+01 -0.10354653E+02 0.94997021E+00 0.55344983E-01 0.61241299E-01 -0.24916071E+00 0.91298892E+00 1 1 1 0 0 0
0.20000000E+03 -0.48363483E+01 0.14021897E+01 -0.11339558E+02 0.94216741E+00 -0.40857416E-01 0.10035224E+00 -0.17001969E+00 0.92034386E+00 1 1 1 0 0 0
0.20000000E+03 -0.15351525E+01 -0.10540834E+00 -0.14300028E+02 0.93445803E+00 -0.95186443E-01 -0.34158155E-02 -0.90580458E-01 0.92516748E+00 1 1 1 0 0 0
0.20000000E+03 0.50365428E+00 -0.55848534E+01 -0.10668460E+02 0.92319853E+00 -0.43292780E-01 -0.30070721E-01 0.25565848E-01 0.92133784E+00 1 1 1 0 0 0
0.20000000E+03 0.45010902E+01 0.47995627E+00 -0.16285988E+02 0.94523001E+00 -0.10156527E+00 -0.68855515E-01 -0.20099211E+00 0.91542632E+00 1 1 1 0 0 0
0.20000000E+03 -0.35173355E+01 0.43546196E+01 -0.62668400E+01 0.94408646E+00 0.13315282E+00 -0.25129069E-01 -0.18922045E+00 0.91495012E+00 1 1 1 0 0 0
0.20000000E+03 -0.48685988E+00 -0.44636500E+01 -0.88157649E+01 0.92129893E+00 -0.14567920E-01 -0.94590089E-01 0.44269600E-01 0.91524446E+00 1 1 1 0 0 0
0.20000000E+03 0.54805378E+00 0.20526895E+01 -0.13533425E+02 0.93336272E+00 -0.78258012E-01 0.22394290E-01 -0.79220756E-01 0.92642551E+00 27 1 1 0 0 0
0.20000000E+03 -0.75143340E+01 -0.24870538E+01 -0.12839871E+02 0.92714281E+00 -0.75542716E-02 -0.11321098E+00 -0.15225440E-01 0.92004792E+00 1 1 1 0 0 0
0.20000000E+03 0.82879156E+00 -0.33991323E+01 -0.96634370E+01 0.92799461E+00 0.61195684E-01 -0.15915225E+00 -0.24591406E-01 0.91186343E+00 1 1 1 0 0 0

MfG

edit: regulären ausdruck veraendert
Pörl.
quant82
 2009-02-11 17:45
#118793 #118793
User since
2007-07-27
13 Artikel
BenutzerIn
[default_avatar]
danke, aber ich glaub das hilft mir nur bedingt weiter, weil ich dann später die events mit 2 mal 27 weiter verarbeiten will...

ich hab nun dass hier mal versucht allerdings bekomm ich da nun einen fehler mit dem ich nichts anfangen kann.

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!/usr/bin/perl
use strict;
use warnings;

my $noe1=0;
my @array;
my $i;
#gesamtzahl der events
my $noe;

while(<>) { 
my @stuff=split(' ');

 if(/UQMD/){
 }
 elsif(/projectile:/){
 my $protar=$_
 }
 elsif(/equation_of_state:/){
  my $ecm=$stuff[5];
  my $midy=log($ecm/0.938);
  my $elab=$stuff[3];
  my $plab=$stuff[7];
 }
 elsif(/event#/){
  $noe++                    # numbers of events: noe
 }      
 else{
  if($#stuff==14){ 

   my @x=@stuff[0..3];   
   my @p=@stuff[4..7];
   my @id=@stuff[8..11];

   my $mass=$id[0];
   my $ityp=$id[1];
   my $iz2=$id[2];
   my $charge=$id[3];


    if ($ityp==27) {
      $array[$noe]++;    
     }
     }
     }
     }
    for($i=0..$#array){
      if($array[$i]==2){
      print($i, "\t", $array[$i]);
      }
    }


der fehler ist folgender:
Code: (dl )
1
2
3
-bash$ perl datei.pl datafile.f14
Argument "" isn't numeric in array element at datei.pl line 48, <> line 2175503
Use of Uninitialized value in numeric eq (==) at datei.pl line 48, <> line 2175503.
styx-cc
 2009-02-11 17:53
#118794 #118794
User since
2006-05-20
533 Artikel
BenutzerIn

user image
Einbauen musst du es dir schon selber.

Das Array-Element $array[$i] ist nicht [s]definiert[/s] initialisiert, da muss vorher was beim Zuweisen oder Aufbereiten der Daten (vielleicht sind die Daten inkonsistent?) schief gelaufen sein.

MfG
Pörl.
quant82
 2009-02-11 18:07
#118795 #118795
User since
2007-07-27
13 Artikel
BenutzerIn
[default_avatar]
hmmm ich hab grad mal die datafile.f14 angeschaut, die zeile 2175503 die dort aufgerufen wird ist die letzte zeile in der datei und sie sieht ganz normal aus

irgendwie weiss ich jetzt garnicht mehr weiter
styx-cc
 2009-02-11 18:22
#118796 #118796
User since
2006-05-20
533 Artikel
BenutzerIn

user image
versuchs mal mit:
Code: (dl )
1
2
3
4
5
for(0..$#array) {
if($array[$_]==2 ) {
print($_, "\t", $array[$_]);
}
}


edit: code geaendert
Pörl.
quant82
 2009-02-11 18:54
#118797 #118797
User since
2007-07-27
13 Artikel
BenutzerIn
[default_avatar]
also das funktioniert, danke schonmal für alles... allerdings wirft er mir hinterher eine liste aus in welchen events 2 mal 27 drin war. was ist eigendlich erst mal brauche ist eine reine zahl, also sowas wie

events mit 27 = 2453

vlt kannst du mir dabei noch helfen... ich häng grad mal meinen code nochmal an

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/usr/bin/perl
use strict;
use warnings;

my $noe1=0;
my @array;
my $i;
#gesamtzahl der events
my $noe;

while(<>) { 
my @stuff=split(' ');

 if(/UQMD/){
 }
 elsif(/projectile:/){
 my $protar=$_
 }
 elsif(/equation_of_state:/){
  my $ecm=$stuff[5];
  my $midy=log($ecm/0.938);
  my $elab=$stuff[3];
  my $plab=$stuff[7];
 }
 elsif(/event#/){
  $noe++                    # numbers of events: noe
 }      
 else{
  if($#stuff==14){ 

   my @x=@stuff[0..3];   
   my @p=@stuff[4..7];
   my @id=@stuff[8..11];

   my $mass=$id[0];
   my $ityp=$id[1];
   my $iz2=$id[2];
   my $charge=$id[3];


    if ($ityp==27) {
      $array[$noe]++;    
     }
     }
     }
     }
    my $number;
    for(0..$#array){
#      if( defined($array[$_]) && $array[$_]==2){
#        $number++
      if($array[$_]==2 ) {
        print($_, "\t", $array[$_]);
      }
      }
      #print("anzahl", $number);
     # print($_, "\t", $array[$_]);

#    }
#   }
#  } 
# }

 
styx-cc
 2009-02-11 19:13
#118798 #118798
User since
2006-05-20
533 Artikel
BenutzerIn

user image
Du hast doch schon ne Zählervariable ($number) pack Sie doch ins if, inkrementiere sie und geb sie am Ende aus.
Pörl.
quant82
 2009-02-11 19:18
#118799 #118799
User since
2007-07-27
13 Artikel
BenutzerIn
[default_avatar]
ich stell mich wahrscheinlich extrem doof an aber es funktioniert nicht wie ich es mir vorstelle

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
   if ($ityp==27) {
      $array[$noe]++;    
     }
     }
     }
     }
    my $number;
    for(0..$#array){

#        $number++
      if($array[$_]==2 ) {
        $number++
      #  print($_, "\t", $array[$_]);
      }
      }
      print("anzahl", $number);
     # print($_, "\t", $array[$_]);
styx-cc
 2009-02-11 19:20
#118800 #118800
User since
2006-05-20
533 Artikel
BenutzerIn

user image
Was funktioniert nicht?

Beispiel:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/perl -w
use strict;
my @array = qw/1 2 3 4 5/;

my $number = 0;
for(0..$#array) {
   if( $array[$_]==2 ) {
      print($_, "\t", $array[$_]."\n");
      $number++;
   }
}
print "Anzahl: $number\n";
Pörl.
<< |< 1 2 3 >| >> 24 Einträge, 3 Seiten



View all threads created 2009-02-10 16:37.