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

Dateiname hochzählen

 

matlab_anfaenger

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.01.2014, 12:39     Titel: Dateiname hochzählen
  Antworten mit Zitat      
Hallo,

ich möchte über uigetfile Dateien einlesen.

Code:
[file path]=uigetfile
pfad=[file path]


nun möchte ich aber immer die nächste Datei einlesen

z.B. C:\Messdaten01\test.txt
und als nächstes dann C:\Messdaten02\test.txt

wie setzte ich das am besten um? Meinen Dateipfad in double umwandeln und dann über ascii die betreffenden Stellen ändern? Oder gibt es einen besseren Weg?

Vielen Dank im Vorraus

Matlab-Anfänger


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 13.01.2014, 12:49     Titel:
  Antworten mit Zitat      
Hallo

dazu die DIR-Funktion verwenden und dann in der FOR-Loop die Files verarbeiten


Code:

[file, pfad]=uigetfile()
files = dir(fullfile(pfad,'*.txt'))
files = {files.name}

for k=1:length(files)

   vollpfad=fullfile(pfad, files{k})

   ....
   ....

end


 



PS: Achtung PATH ist in Matlab reserviertes Wort für die Funktion, also bitte anderen Namen für deien Variable vergeben

Zuletzt bearbeitet von denny am 13.01.2014, 13:11, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
matlab_anfaenger

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.01.2014, 12:59     Titel:
  Antworten mit Zitat      
danke für den Tip mit path

habe jetzt folgendes Problem:

Code:
files=dir(pfad,'*.txt);
Error using dir
Too many input arguments.


dir funktioniert also so nicht. Kannst du mir bitte kurz umschreiben, was dein Quellcode macht? Bei mir heißen alle Dateien die ich einlesen möchte gleich, sie sind jedoch in unterschiedlichen Ordnern abgelegt, bei denen jeweils die Nummer hochgezählt wird!
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 13.01.2014, 13:12     Titel:
  Antworten mit Zitat      
Ach sorry, habe etwas vergessen
die Zeile wie folgt anpassen:
Code:

files = dir(fullfile(pfad,'*.txt'))
 
Private Nachricht senden Benutzer-Profile anzeigen
 
matlab_anfaenger

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.01.2014, 14:10     Titel:
  Antworten mit Zitat      
kannst du trotzdem mal kurz umreisen, was dein Code zeile für zeile macht? werde darauß noch nicht ganz schlau

Code:
[file, pfad]=uigetfile()  %Erste Datei über Auswahldialog auswählen
files = dir(fullfile(pfad,'*.txt')) %Auflisten aller Dateien mit der Endung in einem Ordner?
files = {files.name}

for k=1:length(files)

   vollpfad=fullfile(pfad, files{k})

   ....
   ....

end

 


Wenn ich den Code richtig deute bezieht es sich auf alle Dateien mit der Endung in einem Ordner. Ich habe aber einen Übergeordneten Ordner mit Unterordnern mit jeweils einer Datei mit identischem Namen

Wie gehe ich hier dann vor?
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 13.01.2014, 14:37     Titel:
  Antworten mit Zitat      
Wenn der Filename in allen Ordnern gleich ist, dann wäre das so möglich.
Ansonsten ist einfacher die Dateien in einem Ordner zu haben.


Code:


[file, pfad] = uigetfile()  % Erste Datei über Auswahldialog auswählen
dirs = dir(fileparts(pfad)) % den Hauptordner nach Ordnern und alle Dateien durchsuchen
dirs = {dirs([dirs.isdir]).name} % nur Ordner belassen

dirs= setdiff(dirs, {'.' , '..'}) % entferne Ordner für relative Pfade

% Ordnerliste einzeln durcharbeiten
for k=1:length(dirs)

   vollpfad=fullfile(pfad, dirs{k}, file)

   .... Hier dein Code
   ....

end
 
Private Nachricht senden Benutzer-Profile anzeigen
 
matlab_anfaenger

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.01.2014, 15:12     Titel:
  Antworten mit Zitat      
vielen Dank, für die Hilfe

ich muss nur noch von meinem Pfad, den ich bei uigetfile zurückgegeben bekomme den aktuellen Ordner löschen, dann funktioniert das ganze einwandfrei. Messsystem gibt die Daten leider so aus, aber dadurch dass die Dateinamen alle identisch sind lässt sich damit ja ganz gut umgehen.

Viele Grüße
matlab_anfaenger
 
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.