intertools.product einzelne parametersets lesen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
fox1203
User
Beiträge: 56
Registriert: Montag 23. März 2020, 15:19

Hallo, ich muss für 5 verschiedene parameter einen min und max wert, sowie den zugehörigen step definieren, dies erfolgt über:

Code: Alles auswählen

import itertools
import numpy as np


# input parameter range:
density_dry = np.arange(1600,2250,50)
saturation = np.arange(0.05,1.1,0.31)
diameter = np.arange(0.8,4.6,0.1)
cement_content = np.arange(80,950,10)
start_temp = np.arange(10,31,1)
Diese einzelnen Parameter werden über itertool.product erfolgreich kombiniert:

Code: Alles auswählen

# calculate parametersets:
print(">>> calculate parametersets")
parameter_iteration = itertools.product(density_dry, saturation, diameter, cement_content, start_temp)
soweit so gut, nun steht zB in der ersten Zeile:

1600, 0.05, 0.8, 80, 10
usw.

soweit so gut. Jetzt muss ich eben Zeile für Zeile in ein TXT File im Format:

1600
0.05
0.8
80
10
ein statischer Wert
ein statischer Wert
ein statischer Wert
ein statischer Wert

das habe ich bislang nur ohne der intertools.product funktion geschafft

Code: Alles auswählen

arameterset = open ("input_parameterset.txt", "w")
devries.write(str(density_dry))
devries.write("\n")
devries.write(str(saturation))
devries.write("\n")
devries.write(str(diameter))
devries.write("\n")
devries.write(str(cement_content))
devries.write("\n")
devries.write(str(start_temp))
devries.write("\n")
devries.write 	(
		"1\n"
		"0.9\n"
		"0\n"
		"10\n")
devries.close()
anschließend soll ein binäres Programm aufgerufen werden, welches leider ein txt in genau dem Format benötigt:

Code: Alles auswählen

subprocess.run('./iteration')
Kann mir jemand bei dem Zwischenschritt weiterhelfen, wie ich die Parametesets Zeile für Zeile in das TXT File bekomme und Zwischendurch das binäre file auszuführen kann. Dieser Schritt soll sich wsl im 6 stelligen Bereich wiederholen.

Danke schon mal vorweg
Sirius3
User
Beiträge: 18272
Registriert: Sonntag 21. Oktober 2012, 17:20

Du brauchst eine for-Schleife.
Antworten