3. DATA-Input/Output

Einstieg

In diesem Kapitel soll es um die Verarbeitung verschiedener Datenquellen gehen. Grundlegende Stichpunkte dazu

ASCII-Data

Strukturierte Daten lesen
In einem 3-spaltigen Textfile data1.txt sind Stützstellen und Werte zweier Funktionen f_1(x), f_2(x) gespeichert, die Struktur entspricht
      x                      f_1(x)                 f_2(x)
 0.0000000000000000e+00 1.0000000000000000e+00 0.0000000000000000e+00
 1.0000000000000000e-03 1.0009954998367083e+00 9.9950012497916918e-07
 2.0000000000000000e-03 1.0019819987206668e+00 3.9960019993335003e-06
      ...                      ...                  ...
Lesen Sie die Daten ein und stellen Sie die Funktionsverläufe der beiden Funktionen in einem Plot mit Titel, Achsenbeschriftungen und Legenden dar.
Exportieren Sie den Plot als PNG- und als PDF-File.

Unstrukturierte Daten schreiben

Erzeugen Sie ein Datenfile results.txt mit etwa 100 Zeilen als Logbuch einer Rechnung mit Zeilen der Form

Aktuelle Zeit  a=   b=  result=
Als Werte für a,b,result können Sie irgendetwas generieren, damit die Zeiten variieren bremsen Sie das Script mittels Matlab-Befehl pause(0.5) aus.

Unstrukturierte Daten lesen

Das Logbuch eines Prozesses ist als Textfile log.txt mit Zeilen der Form

2025-04-12 05:31:21: state=116285904
2025-06-23 16:48:47: state=477528897
...
gegeben.

Erstellen Sie ein Matlabscript, was folgendes leistet:

Binärdaten verarbeiten

In einer Statistik wurden von einem C++-Programm Datensätze zur Größe von Personen erhoben und als Datenstruktur

typedef struct
{
   uint32_t  index;
   char name[256];
   uint32_t pad;
   double size;
   uint8_t male_female;
   uint8_t stuff[7];
} personaldata;
erfasst. Dabei bedeuten die Felder
index  ... ein Indexwert
name   ... Name der Person (hier Mustermann-12345)
pad    ... Füllwert (kann ignoriert werden)
size   ... Körpergröße
male_female  ... Geschlecht: 0==männlich, 1==weiblich
stuff[7] ... stuff bytes um das Alignment zu sichern

Es zeigt sich bei Ausgabe von der Größe des Records im C++ Programm

   sizeof(personaldata)=280
dass nicht noch extra Bytes angehängt wurden, die müssten sonst auch noch überlesen werden, damit der nächste Record passt.

Diese Datenstrukturen wurden in einem Binärfile persons.dat abgespeichert.

Der erste Eintrag im File ist die Anzahl n der Datensätze als Datentyp uint32_t. Danach folgen n Datensätze gemäß obigem struct.

Schreiben Sie ein Matlabscript was folgendes leistet: