Zweites Beispiel zum Einlesen von Daten aus externer Datei
Das vorhergehende Beispiel wird nun
so verändert, dass es einerseits die Namensinformationen als Cell Arrays zurückgibt, und
andererseits die eigentlichen Daten nicht mehr mit einer Schleife und fscanf einliest, sondern mit einem einmaligen Aufruf von
textscan, welcher die Daten ebenfalls als Cell Array
zurückgibt.
Bitte schauen Sie sich die Funktion load_data2.m anhand der folgenden Schritte aufmerksam an.
- Öffnen Sie die Funktion load_data2.m im Editor
- Auf Zeile 47 sehen Sie die Anwendung von
textscan.Cdata = textscan(fid, '%s %s %s %f %s %f %f %f %f %f %s');
Dieser Befehl liest entsprechend des vorgegebenen Formats (%ssind Strings,%fFliesskommazahlen) Daten in ein Cell Array ein, bis das Ende der Datei erreicht ist.Cdata{x}wird dann alle Daten aus der x-ten Spalte der eingelesenen Datei enthalten. Alphanumerische Daten werden als Cell Array im Cell Array gespeichert, numerische Daten als Matrizen. - (was die Bearbeitung der Daten betrifft, ist die Funktion unvollständig)
- auf den Zeilen 59-61 werden die Daten entsprechend den Erfordernissen umgeordnet:
Cfirstname = Cdata{1};Cfamilyname = Cdata{2};Mdata = [Cdata{4} Cdata{6:10}];
Die Funktion kann mit [Mdata, Cfirstname, Cfamilyname] =
load_data2('exp1.dat') aufgerufen werden.