WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Dateien in einem Ordner nacheinander einladen

 

FloMoTion
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 14.01.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.01.2013, 13:13     Titel: Dateien in einem Ordner nacheinander einladen
  Antworten mit Zitat      
Hallo liebe Gemeinde,

ich habe nun schon viele Ansätze ausprobiert aber so richtig zufriedenstellen kann mich keiner, da immer wieder Fehler auftreten.

Zur Situation:
Ich habe viele Dateien in einem Ordner, die ich nacheinander einlesen möchte. Die Dateien werden von einem anderen Skript erzeugt und der Name einer Datei sieht wie folgt aus:
AF01.NC.HHE.D.2011.150.0431 (es handelt sich hierbei um das miniseed format, welches ich mit einem externen skript umwandeln kann, sodass ich die benötigten parameter mit
Code:
time = cat(1,seis.t);
ansprechen kann).

Die Dateinamen sind wie folgt aufgebaut und folgen leider keinem simplen 1,2,3..schema.
AF01. - stationsID (AF01 -AF10, T01 - T25, oft fehlen manche)
NC. - Nord Chile
HHE. - Kompoente (HHE Osten, HHN Norden, HHZ Vertikal Komponente
D. - ??? (unwichtig)
2011.150.0431 - Datum (Jahr, Tag im Jahr, uhrzeit (hh:mm)

Es gibt jeweils 3 ähnliche Dateien (...HHE...),(...HHN...) und (...HHZ).
In den nächsten Dateien ist dann das Datum verschieden.

Ich habe mir gedacht:
manuell Ordner angeben --> Dateinamen aus dem Ordner auslesen --> in variable schreiben (oder txt datei) --> Datei mit gespeichertem Dateinamen ansprechen und mittels
externem Skript rdmseed() einalden.

Code:

%myFolder = '.../example_data/11_05_30_21_05_55/';
myFolder = uigetfile('*.*', 'Import file')
allFiles = dir( myFolder );
allNames = { allFiles.name };

dann per for schleife ansprechen und in variablen (t('zeit'),d('amplitude')) speichern.

Ich hoffe ihr könnt mir da weiter helfen.
Private Nachricht senden Benutzer-Profile anzeigen


FloMoTion
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 14.01.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.01.2013, 17:13     Titel:
  Antworten mit Zitat      
so erster Schritt gelöst:

Code:
myFolder = '.../example_data/';
allFiles = getAllFiles( myFolder );

for idx = 1:length(allFiles)
    seis = rdmseed(allFiles{idx});
    t(idx,:) = cat(1,seis.t);
    d(idx,:) = cat(1,seis.d);
end
 


mit getAllFiles
Code:
function fileList = getAllFiles(dirName)

  dirData = dir(dirName);      %# Get the data for the current directory
  dirIndex = [dirData.isdir];  %# Find the index for directories
  fileList = {dirData(~dirIndex).name}';  %'# Get a list of the files
  if ~isempty(fileList)
    fileList = cellfun(@(x) fullfile(dirName,x),...  %# Prepend path to files
                       fileList,'UniformOutput',false);
  end
  subDirs = {dirData(dirIndex).name};  %# Get a list of the subdirectories
  validIndex = ~ismember(subDirs,{'.','..'});  %# Find index of subdirectories
                                               %#   that are not '.' or '..'
  for iDir = find(validIndex)                  %# Loop over valid subdirectories
    nextDir = fullfile(dirName,subDirs{iDir});    %# Get the subdirectory path
    fileList = [fileList; getAllFiles(nextDir)];  %# Recursively call getAllFiles
  end

end
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.