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

Einlesen mehrerer Txt Dateien und verarbeiten von Dateinamen

 

Maik aus Magdeburg

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.05.2013, 18:41     Titel: Einlesen mehrerer Txt Dateien und verarbeiten von Dateinamen
  Antworten mit Zitat      
Hallo,

ich suche eine Möglichkeit mehrere (über 1000) verschieden lautende Txt-Dateien in Matlab einzulesen.
Ich habe einige Sachen darüber hier im Forum gefunden jedoch nicht das was ich suche.

Meine Dateinamen lauten in etwa wie folgt. 9630LösungUROGOmFiKaSG9620.txt
Am Anfang und am Ende des Dateinamens stehen immer 4 Zahlen. Alle Dateinamen haben gleich viele Zeichen. Die Zahlen könnte man mit einer for-Schleife und entsprechenden „num2str“ durchlaufen. Jedoch ändern sich im Namen auch der 11 bis 16 Buchstabe.
Uigetfile habe ich noch gefunden jedoch ist das mit soeinem Auswahlfenster was ich nicht will, denn er soll ja alle Dateien einlesen.
Gibt es da eine Möglichkeit?

Gibt es einen Befehl um innerhalb eines Matlabprogramms nach dem einlesen der Txt-Datei z.B. mit „fopen“ den Dateinamen aufzurufen und Teile davon für die Erstellung einer neuen Datei zu verwenden?
Speziell geht es mir um die Zahlen am Anfang und Ende sowie den 11 -16 Buchstaben.

Hoffe Ihr könnt mir helfen.

MFG


flashpixx
Forum-Guru

Forum-Guru


Beiträge: 355
Anmeldedatum: 19.04.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.05.2013, 19:30     Titel:
  Antworten mit Zitat      
Lege alle Dateien in ein Verzeichnis und lass Dir von Matlab einfach alle *.txt Dateien als Liste liefern ( http://www.mathworks.de/de/help/matlab/ref/dir.html ). Du kannst dann die Liste entsprechend verarbeiten
Private Nachricht senden Benutzer-Profile anzeigen
 
Maik aus Magdeburg

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.05.2013, 12:37     Titel:
  Antworten mit Zitat      
Hallo flashpixx,

danke für die Info. Habe mich diesbezüglich mal schlau gemacht und noch andere Sachen dazu gefunden, jedoch weiß ich nach dem Befehl nicht wie ich das weiter verarbeite. Meine dabei vor allem den Zugriff auf die Liste.

Gibt es trotzdem irgendwie eine Möglichkeit innerhalb eines Programms den Namen der eingelesenen Datei aufzurufen, ohne eine Liste aller möglicher Dateien zu erhalten. Es geht hier um einen "indivudellen" Namen der sich in einer Schleife ändert, nicht um einen den ich am Anfang konkret vorgebe.
 
flashpixx
Forum-Guru

Forum-Guru


Beiträge: 355
Anmeldedatum: 19.04.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.05.2013, 15:30     Titel:
  Antworten mit Zitat      
Ich meine Du kannst auch mittels Schleife die Dateinamen generieren, würde ich aber aus Erfahrung von abraten, denn es ist meist in der Bedienung leichter, sich einfach alle Dateien geben zu lassen und dann diese zu verarbeiten (vor allem ist das auch nicht so fehleranfällig).

Ich kann es grade nicht teste, aber Matlab müsste Dir mittels Dir ein Struct-Array liefern, d.h. Du kannst einfach über den Array mittels for iterieren und Dir eben jeden Dateinamen (auch Dateigröße etc) geben lassen:
Code:

list = dir('*.txt');
for i=1:numel(list)
    list(i).name
end
 

Ungefähr so müsste es gehen (ungetestet). Wenn Du nur bestimmte Dateienamen rauspicken willst, dann kannst Du z.B. mittels regulärer Ausdrücke den Inhalt von "name" prüfen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Roman

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.05.2013, 14:25     Titel:
  Antworten mit Zitat      
Hallo,
hatte vor kurzem ähnliches Problem, das nach dem Lesen von diesem Beitrag sich gelöst hatte:

http://www.gomatlab.de/einlesen-all.....us-einem-ordner-t643.html

Code:

path = 'E:\Programme\MATLAB704\work\Matlab\Messreihe\Matrix';
liste = dir(path);
files = {liste.names};
for k=1:numel(files)
    % einlesen der Dateien
    fid = fopen(fullfile(path,files{k}),'r');
    daten{k} = textscan(fid,'%s');
    % ...
end
 
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 16.05.2013, 09:37     Titel:
  Antworten mit Zitat      
Hallo Roman,

"path" ist ein sehr wichtiger Matlab-Befehl. Wenn man eine lokale Variable mit dem gleichen Namen erzeugt, kann dies beim Debuggen zu ernsten Schwierigkeiten führen.

Gruß, Jan
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.