[Python-de] While Schleife

Dr. Werner Pessenhofer w.pessenhofer at tugraz.at
Die Apr 26 13:40:35 CEST 2005


Hallo,

ich versuche gerade mit Hilfe von Numerical Python, matplotlib und python
aus einem ascii Datenfile automatisiert Spektren zu plotten. Hierzu wird
der file zuerst als array geladen.
Zum Plotten wird als x - Wert der Wert aus der ersten Spalte genommen, der
y - Wert kommt dann jeweils aus der zweiten, vierten, sechsten usw. Spalte.

Ich habe versucht, dass unter Zuhilfenahme einer while Schleife zu lösen:

   #!/usr/bin/python

  from pylab import *

X = load('Spektren-CuP-conv.dat',comments='#')

y = 0
while y <= 18:
      y = y + 2
      x = X[:,1]
      y1 = X[:,y]
      plot (y1,x,'-')


Das erste Spektrum (Spalte 1 und 2 aus dem array) wird noch geplottet,
allerdings tritt dann folgende Fehlermeldung auf:

Traceback (most recent call last):
    File "<stdin>", line 1, in ?
    File "/usr/tmp/python-25858Gby.py", line 11, in ?
      y1 = X[:,y]
IndexError: invalid index
>>> ## working on region in file /usr/tmp/python-258584kB.py...
Traceback (most recent call last):
    File "<stdin>", line 1, in ?
    File "/usr/tmp/python-258584kB.py", line 11, in ?
      y1 = X[:,y]
IndexError: invalid index

Soweit ich das verstehe, heißt das, dass beim zweiten Durchlauf der
Schleife (der erste scheint erfolgreich abgeschlossen zu werden, da das
erste Spektrum geplottet wird) der Wert y nicht mehr definiert zu sein
scheint.

Kann mir jemand sagen, was ich falsch mache ?

Werner
-- 
DI Dr. Werner Pessenhofer

CPA - Computer Process Automation
Plüddemanngasse 33
8010 Graz
Tel.: +43 (0) 676 346 70 08
FAX: +43 (0) 316 873 8772