mass m [1000000]8070810;
momentOfInertia J [1200000](42292300001642300004229230000);
equilibriumPosition x [0100000](0-89.91550);
linearSpring k [10-20000](000);
linearDamping d [10-10000](000);
Xrel Xrel [0100000](-0.1276114838-0.046559575760.005312987547);
U U [01-10000](-0.026910617060.0042729352020.001034637936);
rotationVector (0.02804016332-0.045422656930.9985742494);
rotationAngle rotAngle [0000000]0.00108401585;
omega rotUrel [00-10000](-1.220060883e-05-8.197591123e-069.157017286e-05);
force f [11-20000](-24479.6188934048.24527426.6281931);
moment m [12-20000](-8957.921067-126.9805895-321881.8619);
forceRelative fRel [11-20000](000);
momentRelative mRel [12-20000](000);
Im Speziellen möchte ich nur die Vektoren neben Xrel und omega auslesen.
Bisher habe ich immer nur Textdateien ausgelesen, in denen nur Zahlen standen, nicht so wie hier "wild" durcheinander mit Text. Deshalb bin ich einigermaßen überfordert.
Da solch eine Textdatei für jeden Simulations-Zeitschritt erstellt wird, möchte ich die Vektoren zudem aus mehreren Dateien auslesen und gerne in einer Datei/Matrix bündeln.
Ggf. zusätzlich problematisch ist außerdem, dass OpenFOAM die Textdatei (unnötigerweise) auch noch in ein .gz Format verpackt.
Hoffe ihr könnt mir hierbei weiterhelfen? Würde mich sehr über Tipps und Tricks freuen!
File öffnen mit
fopen
Zeile für Zeile in einer
while
Schleife einlesen und vergleichen mit:
strncmp(Line, 'XRel ', 5)
bzw. dem anderen Keyword.
Wenn es passt, den Rest der Zeile mit
Mein Problem ist, dass ich nun Xrel und omega ausgelesen habe, das ganze aber als Text erkannt wird und ich keine 3x1 oder 1x3 Matrix erhalte. Gibt es da eine Möglichkeit die drei Dezimalzahlen jeweils in diesem Format auszulesen?
Das weitaus größere Problem ist dann, dass diese barge_barge Dateien der unterschiedlichen Zeitschritte nicht alle in einem Ordner liegen. Sie sind immer jeweils in einem Ordner mit dem Namen des Zeitschritts (z.B. 2.0) und dort noch einmal im Ordner uniform abgelegt.
Wie kann ich mit einem Skript alle barge_barge Dateien (aus den verschiedenen Ordnern) einlesen?
Zunächst mal würde ich den sinnlos brutalen Clearing-Header weglassen. Während
clc
manchmal sinnvoll sein mag, ist
closeall
unpraktisch, wenn man später mal mit mehreren arbeiten möchte. Das
clearall
halte ich sowieso für sinnfrei. Arbeite lieber mit Funktionen.
Suche im FileExchange nach "recursive dir". Falls Dir das nicht sagt, frage Google. Da gibt es eine Menge Lösungen, um eine Liste von Files zu erhalten. Dann kannst du ein File name dem anderen in einer Schleife einlesen.
Gruß, Jan
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
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.