Bei der Funktion trEPRload handelt es sich um eine Schnittstelle zwischen der Toolbox und diversen Datenformaten. Sie selbst ruft wieder entsprechende Unterfunktionen je nach erkanntem Dateityp auf („wrapper“).
trEPRload(filename); data = trEPRload(filename); data = trEPRload(filenames,'combine',true);
cell array oder ein struct, wie es von dir zurückgegeben wird.
Wird kein Rückgabeparameter angegeben, dann versucht die Funktion, eine Variable im aktuellen workspace mit dem (bereinigten) Namen der Datei anzulegen, in der die eingelesenen Daten liegen.
Gegeben sei eine einzelne Datei transient.dat, die ein zu ladendes Spektrum beinhaltet. Es gibt zwei Möglichkeiten, dieses Spektrum zu laden:
trEPRload('transient.dat');
legt eine Variable transient im aktuellen workspace an.
data = trEPRload('transient.dat');
schreibt den eingelesenen Inhalt der Datei in die Variable data im aktuellen workspace.
Sei filenames ein cell array mit Dateinamen:
trEPRload(filenames);
versucht, die zu den in filenames abgelegten Dateinamen gehörenden Dateien einzulesen und legt für jede gelesene Datei eine Variable mit dem (bereinigten) Dateinamen im aktuellen workspace an.
data = trEPRload(filenames);
versucht, die zu den in filenames abgelegten Dateinamen gehörenden Dateien einzulesen und schreibt den eingelesenen Inhalt der jeweiligen Datei in die Variable data (in diesem Fall ein cell array mit so vielen Feldern wie eingelesenen Datensätzen) im aktuellen workspace.
Sei filenames ein cell array mit Dateinamen:
trEPRload(filenames,'combine',true);
versucht, die zu den in filenames abgelegten Dateinamen gehörenden Dateien einzulesen und hinterher zusammenzufügen und legt eine Variable mit dem (bereinigten) Dateinamen der ersten eingelesenen Datei im aktuellen workspace an, der die Daten der kombinierten gelesenen Dateien enthält.
Wird ein zusätzlicher Rückgabeparameter angegeben, werden die Daten entsprechend in dieser Variable abgelegt.
Eine komfortable Variante, mehrere Dateien auszuwählen, ist über den Befehl dir:
files = dir('*.dat');
gibt z.B. ein n-dimensionales struct zurück, wobei n die Zahl der Dateien ist, auf die das Suchmuster (hier „*.dat“) paßt.
Neue Versionen von trEPRload (kritisches Datum: 2011-06-17) können direkt und ohne Umwege ein solches struct einlesen:
trEPRload(dir('*.dat'));
liest alle Dateien ein, auf die das Suchmuster „*.dat“ paßt, und legt die Daten in entsprechend benannten Variablen im workspace ab. Entsprechende Kombination mit der Angabe von „'combine',true“ ist ebenfalls möglich, s.o.
Für ältere Versionen der trEPRload-Funktion muß das von dir zurückgegebene struct manuell in ein cell array umgewandelt werden:
files = dir('*.dat'); filenames = cell(length(files),1); % Preallocate for k=1:length(files) filenames{k} = files(k).name; end
Dieses cell array kann dann wie gewohnt übergeben werden, s.o.
Die Beschreibung des Rückgabeparameters befindet sich momentan noch im Entwicklungsbereich.
Wichtigster Aspekt: Es handelt sich beim Rückgabeparameter um ein struct, das neben den reinen Daten (im Feld data) weitere Informationen zum Datensatz ablegt, wie sie von der GUI verwendet werden.
Der Zugriff auf die „reinen Daten“ ist also sehr einfach. Um z.B. die 2D-Daten einfach darzustellen, käme folgendes Vorgehen in Betracht:
data = trEPRload(<filename>); imagesc(data.data);