Verfasst am: 11.12.2013, 06:07
Titel: Spalten aus mehreren Dateien zusammenführen
Hi Leute,
ich bin mal wieder auf ein Problem gestoßen. Und zwar habe ich 96 Textdateien mit jeweils 3 Spalten. Jede Datei enthält die Messdaten zu einem bestimmten Zeitpunkt. Um plots über den gesamten Zeitraum zu erstellen, müssen alle Spalten in einem array stehen, also 96 x 3 Spalten.
Bisher habe ich alle Dateien aus dem Ordner eingelesen und in der cell "files" gespeichert. Wie kann ich nun auf jede einzelne der Dateien zugreifen (in der richtigen Reihenfolge), mir die drei Spalten (ohne den einzeiligen Header) rauskopieren und alle zusammen (in der richtigen Reihenfolge) in ein neues Cell-Array speichern?
Bisher habe ich diesen Code:
Code:
path = 'C:\Users\LaLa\Desktop\Lidar_Test\';
list = dir([path '*.hpl']);
files = {list.name};
for k=1:numel(files) % einlesen der Dateien
fid = fopen(fullfile(path,files{k}),'r');
daten{k} = textscan(fid,'Headerlines',1,'EmptyValue',0,'EndOfLine','\r\n','Delimiter','');
fclose(fid);
end
path ist bereits in Matlab reserviert, deswegen bitte deine Varaible anders benennen, sonst kann es vorkommen, dass Matlab eigene Funktionen nicht mehr kennen würde.
Ich verstehen nicht, was du hier unter 96x3 Matrix meinst,
weil deine Textdateien haben jeweils 200 Zeilen und 3 Spalten?
vielleicht so:
Code:
path2hlp ='C:\Users\LaLa\Desktop\Lidar_Test\';
list = dir(fullfile(path2hlp, '*.hpl'));
files = {list.name};
format = '%f%f%f';
daten = cell(1,numel(files));
for k=1:numel(files) % einlesen der Dateien
fid = fopen(fullfile(path2hlp, files{k}),'r');
format = '%f%f%f';
daten{k} = textscan(fid,format,'Headerlines',1,'EmptyValue',0,'EndOfLine','\r\n','Delimiter','');
fclose(fid);
end
% nach diesem Schritt ist variable daten 96x3 groß ist aber Cell.
daten = cat(1, daten{:});
Height = cat(1, daten{:, 1});
Wind_Direction = cat(1, daten{:, 2});
Wind_Velocity = cat(1, daten{:, 3});
Ich habe dann doch nochmal eine weitere Frage. Da ich eine Zeit benötige, um die Daten anständig zu plotten, habe ich mir diese aus den Dateinamen extrahiert und umgeformt. Die Zeit sieht momentan noch so aus: HHMMss.
Nach einer Umformung mit
erhalte ich die korrekt formatierte Uhrzeit, allerdings in einem char, welches ich so noch nicht gesehen habe. Es sind keine Zeilen oder Spaltenzahlen vorhanden. Wenn ich auf die Variable klicke, habe ich ein weißes Fenster mit
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.