Seite 1 von 1

While Loop Werte ausgeben

Verfasst: Mittwoch 19. Juni 2019, 08:39
von El_Furachier
Hallo miteinander,
ich habe ein relativ einfaches Problem, komme jedoch nicht auf die Lösung. Ich möchte gerne aus einer While Loop alle berechneten Werte in einem Array speichern. Anschließend möchte ich die Werte plotten. Dabei meine Laufvariable die mit Werten multipliziert wird um das Array a zu erhalten.

Code: Alles auswählen

i = 0
while i <= 5000:
    a= 50*(i/100)+3
    i += 1
Ich kann die einzelnen Werte von a zwar in der Schleife als Punkte plotten, möchte jedoch die Werte zunächst als Array im Variablenmanager zur Verfügung haben.

Code: Alles auswählen

import matplotlib.pyplot as plt 
i = 0
while i <= 5000:
    a= 50*(i/100)+3
    plt.plot(i,a,'o')
    i += 1
Danke für eure Unterstützung!

Re: While Loop Werte ausgeben

Verfasst: Mittwoch 19. Juni 2019, 09:13
von Bolitho

Code: Alles auswählen

import matplotlib.pyplot as plt 

i = 0
werte = []     # Werteliste erstellen

while i <= 5000:
    a= 50*(i/100)+3
    werte.append(a)    # Wert zu Liste hinzufügen, erster Wert an Index 0, zweiter an Index 1 usw.
    plt.plot(i,a,'o')
    i += 1

print(a)    # Ausgabe der Liste
Habe ich das Problem richtig verstanden?

Re: While Loop Werte ausgeben

Verfasst: Mittwoch 19. Juni 2019, 09:17
von Bolitho
was auch ginge:

Code: Alles auswählen

werte = []

for number in range(5001):
    werte.append(50*(number/100)+3)

print(werte)

Re: While Loop Werte ausgeben

Verfasst: Mittwoch 19. Juni 2019, 09:30
von Sirius3
Wenn man eine einfache Zählschleife hat, nimmt man statt while eine for-Schleife.
Die komplizierte Rechnung `50*(i/100)` ließe sich zu `i/2` vereinfachen.
Wenn man aber sowieso nur gleichmäßig aufsteigende Zahlen haben will, nimmt man linspace:

Code: Alles auswählen

werte = numpy.linspace(3, 2503, 5001)

Re: While Loop Werte ausgeben

Verfasst: Mittwoch 19. Juni 2019, 09:35
von El_Furachier
Sirius3 hat geschrieben: Mittwoch 19. Juni 2019, 09:30 Wenn man eine einfache Zählschleife hat, nimmt man statt while eine for-Schleife.
Die komplizierte Rechnung `50*(i/100)` ließe sich zu `i/2` vereinfachen.
Wenn man aber sowieso nur gleichmäßig aufsteigende Zahlen haben will, nimmt man linspace:

Code: Alles auswählen

werte = numpy.linspace(3, 2503, 5001)
Danke für den Tipp, Meine tatsächliche Rechnung ist komplexer, ich habe hier nur ein vereinfachtes Beispiel herangezogen, um den Kern meiner Frage deutlich zu machen. :D

Re: While Loop Werte ausgeben

Verfasst: Mittwoch 19. Juni 2019, 09:42
von Bolitho
hast du denn deine Antwort und kommst weiten?

Code: Alles auswählen

# Variante 3
werte = [x/2+3 for x in range(5001)]
print(werte)

Re: While Loop Werte ausgeben

Verfasst: Mittwoch 19. Juni 2019, 09:57
von El_Furachier
Bolitho hat geschrieben: Mittwoch 19. Juni 2019, 09:42 hast du denn deine Antwort und kommst weiten?

Code: Alles auswählen

# Variante 3
werte = [x/2+3 for x in range(5001)]
print(werte)
Japp, habe es mit der for Variante realisiert.

Re: While Loop Werte ausgeben

Verfasst: Mittwoch 19. Juni 2019, 10:33
von Sirius3
@El_Furachier: auch deutlich komplexer geht mit numpy deutlich eleganter.