|
|
"selbstständiges" Einlesen von unstrukturierten D |
|
KathyLangstrumpf2 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.10.2017, 16:46
Titel: "selbstständiges" Einlesen von unstrukturierten D
|
|
|
|
|
Hallo,
ich habe Datensätze von Inputs und Outputs einer Simulation.
Diese habe ich vollständig eingelesen und dann verwertet. Da es sich um ca 25 Input und 50 Output Dateien (einfach Textdatei) handelt, die verarbeitet werden mit entsprechender Größe tut man gut daran das zu automatisieren.
Da vor allem die Input Dateien sehr unstrukturiert sind z.B.
1.01 Parameter1
50 Parameter2
abcd.in Parameter3
0 Parameter4
1.2868e-05 Parameter5
usw.
Mein bisheriger Code liest das "hardcoded" ein. Also jede Zeile für sich mit der richtigen Formatierung (Welches Zahlenformat, string etc) ein. Und weist in Matlab den Wert dem Unterstrukt-Parameter "Parameter X" zu. Das war ne Menge Arbeit.
Mit weiteren Versionen der Software haben die Entwickler leider Zeilen gelöscht, oft Zeilen getauscht oder neue Zeilen und damit Parameter hinzugefügt. Viele Parameter können jetzt zusätzlich in files hinterlegt werden, damit wird die Stringoption noch häufiger genutzt.
Ich habe versucht da hinterher zu kommen und die Files anzupassen, teils auch mit Zeile einlesen und if abfragen alle Optionen durchzutesten. Das ist aber langwierig, extrem zeitaufwändig (bei der Anzahl der Dateien und deren Größe) und frustrierend und die Releases und Versionen wechseln immer häufiger.
Hat jemand sich damit schon mal beschäftigt bzw. gibt es Einlesecodes die das automatisch(er) machen? Wenn das überhaupt in Gänze möglich ist mit Matlab, ist es sehr aufwändig (z.B. Zeichen für Zeichen einlesen, testen ob Zahl oder string oder Sonderzeichen, .... alle Optionen)
Da viele Parameter mehrfach genannt werden für verschiedene Boundaries, bleibt immer noch eine riesen Arbeit übrig das abzutesten. Leider nutzt kaum jemand die Software so automatisiert wie ich (oft 1000de Cases), damit hilft auch der Hersteller dabei nicht weiter.
Ich bin extrem dankbar für jede Abkürzung!
DANKE im Voraus!!
Kathy
|
|
|
|
|
SigiSorglos |
Forum-Century
|
|
Beiträge: 147
|
|
|
|
Anmeldedatum: 24.09.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.10.2017, 13:41
Titel:
|
|
Kannst du nicht einfach mit
die Zeilen einlesen und anschließend eine Unterscheidung machen, je nachdem ob es sich um einen String handelt oder nicht?
Etwas Beispielcode würde auch sicher helfen!
|
|
|
KathyLangstrumpf2 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 18.10.2017, 11:40
Titel:
|
|
|
|
|
Das ist der aktuelle Weg den ich fahre. Dafür muss man aber wissen, was als nächstes kommt. sprich Floating integer oder string....
Das geht wunderbar wenn die Reihenfolge und Struktur bekannt ist. Das ist sie aber mit jeder neuen Software Version nicht.
Da mein aktueller Code wunderbar funktioniert, und um alle Beispiele abzudecken meherere hundert Zeilen Code enthält, ich aber einen ganz anderen Weg suche, denke ich es macht keinen Sinn das hier komplett zu posten.
Mein Problem liegt in dem Zeitaufwand eben genau diesen Code jedes mal komplett neu anzupassen. (viele 10.000 Zeilen Code)
Ich suche nach einem kürzeren automatischen Weg, der nicht nach Einlesen einer Zeile ALLE Optionen durchtesten muss, weil sich jemand schon die Mühe gemacht hat dazu Code zu produzieren.
Um alle Zahlenformate zu unterscheiden, gibt's da von meiner Seite nur die Möglichkeit nach dem einlesen jede Ziffer zu prüfen, ob Zahl, Buchstabe oder Sonderzeichen und diese in Umfangreichen Zusammenhängen zu vergleichen. Man denke an 1.04589621e-18.
Da ist alles drin und es ist letztendlich ne Zahl. Ich "weiß" aber nicht das es ne Zahl ist. Die Macher der Software können durch z.B. Zeilentausch in der Struktur an dieser stelle auch genauso gut ein: Parameter.in stehen haben können.
Da würde ja der Code bei einer Zuweisung als Floating number ne Fehlermeldung geben und Abstürzen. Das ist nicht hilfreich, da ich matlab zur automatisierten Auswertung verwende.
|
|
|
SigiSorglos |
Forum-Century
|
|
Beiträge: 147
|
|
|
|
Anmeldedatum: 24.09.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 18.10.2017, 11:55
Titel:
|
|
ich würde schnell mit
prüfen, ob sich der string in eine Zahl umwandeln lässt. Falls nicht ist es eine solche Parameterdatei, wenn es sich umwandeln lässt ist es der Parameterwert.
Dann sparst du dir immerhin das prüfen jedes einzelnen Zeichens.
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|