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

Automatisch Daten importieren: Schleife über Dateiendung

 

Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 19.05.2014, 23:02     Titel:
  Antworten mit Zitat      
also erstmal ist - und _ bei deinen dateinamen anders. wenn das beim erstellen des minimalbeispiels passiert ist dann ist das so. andernfalls zihlte darauf bereits meine vorherige frage ab ob die dateien auch existieren. außerdem ist glaube ich 'txt' nicht die erwartet format angabe bei textread.. sihe dazu in der doc von textread
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen


Tatat

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.05.2014, 16:37     Titel: Abfrage file exist
  Antworten mit Zitat      
Okay jetzt bin ich endgültig verwirrt.
Baue ich eine Abfrage ein, ob die Datei existiert (zur Erinnerung, die Fehlermeldung hat besagt, dass sie das nicht tut), so gibt er keinen Fehler mehr aus. Das "else k" sollte mir zur Orientierung dienen, bis wohin die Schleife überhaupt läuft. Ich erhalte keine Ausgabe.
Habt ihr eine Idee was mit der Schleife nicht stimmt? Bitte um Ideen.

Code:

NDatei = 50; %Anzahl der Dateien
Ergebnis=zeros(1,NDatei);%Nullarray erzeugt
source='C:\Users\Praktikum\Documents\MATLAB\20140512-0013';
for k=1:NDatei
    fileLocator=fullfile(source, sprintf('20140512_0013-%04d.csv',k)) ;
    if ~exist(fileLocator, 'file'),  continue ;
    else
        k
    end
    data=csvread(fileLocator, 'csv') ;
    [pks,len]=findpeaks(data,'MINPEAKHEIGHT',2.0);
end


LG
Tanja
 
SkyRazor
Forum-Century

Forum-Century


Beiträge: 106
Anmeldedatum: 07.05.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.05.2014, 12:21     Titel: Re: Abfrage file exist
  Antworten mit Zitat      
Tatat hat Folgendes geschrieben:

Code:

    if ~exist(fileLocator, 'file'),  continue ;
    else
        k
    end
 



Hallo

einfach die code testen und guck mal, ob es geht, habe ich deine txt file benutzt, die Zeichenen '-' und '_' sollen nicht vermischt werden. Warnungen wegen zu wenigen Dateien, doch ok.

Code:
 NDatei = 4; %Anzahl der Dateien
% Ergebnis=zeros(1,NDatei);%Nullarray erzeugt
% source='C:\Users\Praktikum\Documents\MATLAB\20140512-0013';
for k=1:NDatei
%     fileLocator=fullfile(source, sprintf('20140512-0013_%03d.txt',k)) ;
    if ~exist(sprintf('20140512-0013_%03d.txt',k), 'file')
        errordlg('File not found','File Error');
        break ;
    end
    data=importdata(sprintf('20140512-0013_%03d.txt',k)) ;
    [pks,len]=findpeaks(data,'MINPEAKHEIGHT',2.0);
end


Gruß, Ming
Private Nachricht senden Benutzer-Profile anzeigen
 
Tatat

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.05.2014, 15:07     Titel:
  Antworten mit Zitat      
Das war ein Versehen in dem Minibeispiel. Ändert aber leider nichts daran, dass mein Programm nicht funktioniert. Funktioniert es denn bei euch (wenn '-' und '_' vertauscht sind)?
 
SkyRazor
Forum-Century

Forum-Century


Beiträge: 106
Anmeldedatum: 07.05.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.05.2014, 16:36     Titel:
  Antworten mit Zitat      
Hallo,

die folgende code hat nichts zu tun mit external files.

Code:
m=rand(10,1);csvwrite('20140512-0013_001.csv',m);
m=rand(10,1);csvwrite('20140512-0013_002.csv',m);
m=rand(10,1);csvwrite('20140512-0013_003.csv',m);

NDatei = 3; %Anzahl der Dateien  
% NDatei = 4; %Error test
for k=1:NDatei
    if ~exist(sprintf('20140512-0013_%03d.csv',k), 'file')
        errordlg(['File ' num2str(k) ' does not exit'],'File Error');
        break ;
    end
    data=importdata(sprintf('20140512-0013_%03d.csv',k)) ;
    [pks,len]=findpeaks(data);
end


Kannst du mir später mitteiln, ob es bei dir funktioniert.

Gruß, Ming
Private Nachricht senden Benutzer-Profile anzeigen
 
Tatat

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.05.2014, 10:45     Titel: Super, funktioniert
  Antworten mit Zitat      
Ich danke dir! Das funktioniert! Wärst du noch so nett und beschreibst mir deine Gedanken dazu?
Ich probiere es später noch mit einer größeren Datenmenge aus.
 
SkyRazor
Forum-Century

Forum-Century


Beiträge: 106
Anmeldedatum: 07.05.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.05.2014, 13:16     Titel:
  Antworten mit Zitat      
hallo,

Code:
   if ~exist(sprintf('20140512-0013_%03d.csv',k), 'file')  


Format ist, 20140512-0013_ plus 3 Stelle(von k abhänig) plus .csv


Code:
 
errordlg(['File ' num2str(k) ' does not exist'],'File Error');
        break ;
    end


hier, error window mit dem inhalt File + k + does not exist kommt, wenn das dokument nicht existiert.

Gruß, Ming
Private Nachricht senden Benutzer-Profile anzeigen
 
Tatat

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.05.2014, 11:27     Titel:
  Antworten mit Zitat      
Hallöchen,
ich danke dir!
Ich hätte nur noch eine _sehr dumme_ Frage: Mit meinen eigenen Dateien gibt es ständig Probleme und er gibt mir immer den Fehler zurück, dass die Datei nicht existiert. Ich vermute schwer, dass es daran liegt, dass er im falschen Ordner sucht. Das Programm und die Dateien sind im gleichen Ordner, das scheint jedoch nicht zu genügen.
Hast du einen Tipp, wie ich den Suchordner umstellen kann, ohne einen Dateipfad in mein Programm einfügen zu müssen?
LG
 
SkyRazor
Forum-Century

Forum-Century


Beiträge: 106
Anmeldedatum: 07.05.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.05.2014, 10:01     Titel:
  Antworten mit Zitat      
Hallo,

normalerweise wenn das Programm und die Dateien im gleichen Ordner sind, ist eine Umstellung des Suchordneres nicht möglich.
mein Vorschlag wäre:
1) die Dateiname zunächst prüfen ('-' und '_')
2) für die Dateien, die Fehlermeldung haben, änderst du nur den Inhalt (Dateiname bleibt gleich) mit der code

Code:
m=rand(10,1);csvwrite('dein Dateiname.csv',m);


jetzt guck mal, ob es noch Fehlermeldungen gibt, wenn nein, einfach dein csv Datei hochladen, wenn ja, das Problem liegt an deinem Programm, bitte das Programm hier posten.

Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite Zurück  1, 2

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.