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

mit exist datei Anwesenheit ueberpruefen

 

fekal
Forum-Century

Forum-Century



Beiträge: 124
Anmeldedatum: 08.02.11
Wohnort: Mainz
Version: 2017b
     Beitrag Verfasst am: 09.07.2015, 11:52     Titel: mit exist datei Anwesenheit ueberpruefen
  Antworten mit Zitat      
Bestes Forum,

ich dreh durch. Wie in einigen Beitraegen in diesem Forum beschrieben, versuche ich mittels exist zu ueberpruefen ob eine Datei (*.mat datei) existiert bevor ich sie oeffne.

Momentan sieht der code so aus
Code:
   
cd ('c:\Pfad in dem sich die Datei befindet')

    fullFileName=(['C:\Users\...\Dateiname']);

if exist (fullFileName, 'file')==2; % does the file exist?
    do xyz  
else gib Fehlercode aus
end


Ich hab schon alles moegliche ausprobiert.
Erst mit Dir den Pfad oeffnen, falls nur im Matlab pfad gesucht wird.
Das 'file' weggelassen.
Nicht nach 2 abgefragt sonden offene Abfrage.
Nur den Dateinamen ohne Pfad gesucht (mit und ohne vorherige Matlabpfad Aenderung).
Ach ja ich hab natuerlich name und Pfad per copy past eingetragen um Schreibfehler zu umgehen.

Aber es wird einfach keine Datei gefunden owohl sie eindeutig da ist.
Hat jemand eine Idee was da falsch laeuft?

Vielen Dank
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 09.07.2015, 15:04     Titel:
  Antworten mit Zitat      
wenn du gucken willst ob eine *.mat datei vorkommt warum hat dann dein fullfilename nicht das ende .mat?
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
fekal
Themenstarter

Forum-Century

Forum-Century



Beiträge: 124
Anmeldedatum: 08.02.11
Wohnort: Mainz
Version: 2017b
     Beitrag Verfasst am: 09.07.2015, 15:16     Titel:
  Antworten mit Zitat      
Hi WInkow,

danke fuer deine Hilfe.

Ich hab auch


Code:
exist ( 'c:\...\dateiname.mat' ,'file')  


ausprobiert. Funktioniert leider immer noch nicht.

EDIT: Was aber funktioniert hat ist

Code:
cd ('c:\...Pfad')

fuer den richtigen Matlab Pfad in die For Schleife einzuarbeiten und nicht davor stehen zu lassen (Meine Dateinamen sind variable, daher die For Schleife). Ich dachte, dass ich das nur einmal am Anfang deklarieren muss aber scheinbar geht er beim Ausfuerhen der For schleife wieder in den alten Matlabpfad (der wo das m file sitzt) zurueck. Er muss also jedes mal wieder aufgefordert werden in den Pfad mit den Dateien zu wechseln.

Danke fuer eure Zeit und Muehe
Euer Fekal
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 09.07.2015, 16:13     Titel:
  Antworten mit Zitat      
Hallo fekal,

Zitat:
Code:
exist ( 'c:\...\dateiname.mat' ,'file')  

ausprobiert. Funktioniert leider immer noch nicht.

Bitte erkläre eindeutig, was "funktioniert nicht" bedeutet.

Zitat:
fuer den richtigen Matlab Pfad in die For Schleife einzuarbeiten und nicht davor stehen zu lassen (Meine Dateinamen sind variable, daher die For Schleife). Ich dachte, dass ich das nur einmal am Anfang deklarieren muss aber scheinbar geht er beim Ausfuerhen der For schleife wieder in den alten Matlabpfad (der wo das m file sitzt) zurueck. Er muss also jedes mal wieder aufgefordert werden in den Pfad mit den Dateien zu wechseln.

Solche Text-Beschreibungen sind verwirrend. Bitte poste einfach den Code.

Code:
cd ('c:\Pfad in dem sich die Datei befindet')
fullFileName=(['C:\Users\...\Dateiname']);

Das CD ist überflüssig. Die eckigen Klammern sind unnötig.
Möglicherweise liegt der Fehler in dem Teil, den Du hier als "..." abkürzt.

Der exist funktioniert ohne Magie eindeutig und korrekt mit dieser Syntax:
Code:
exist('C:\Users\Jan\Documents\File.mat', 'file')

Damit werden existierende Files gefunden. Wenn sie nicht gefunden werden, existieren sie nicht. Wenn Du etwas anderes annimmst, ist diese Annahme falsch.

Das Erklären von Code in Text-Form und das Posten von Pseudo-Code wie "do xyz" oder "..." als Abkürzung sind nicht hilfreich. Denn der Fehler liegt ganz bestimmt in dem Code selbst, so dass er im Forum nicht sichtbar ist, wenn Du nicht den Code selbst als Kopie zeigst. Wenn Du es nur ungefähr erklärst, bleibst Du ja bei dem, was Du vorhattest. Der Fehler liegt aber darin, dass das Programm eben nicht tut, was Du vorhattest.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
fekal
Themenstarter

Forum-Century

Forum-Century



Beiträge: 124
Anmeldedatum: 08.02.11
Wohnort: Mainz
Version: 2017b
     Beitrag Verfasst am: 10.07.2015, 16:24     Titel:
  Antworten mit Zitat      
Hallo Jan,

verzeihung wegen der undeutlichen Beschreibung. Ich dachte Pseudocode macht das ganze ein wenig Uebersichtliche. Aber du hast recht,das kann auch zu einiger Verwirrung fuehren, z.B. waren die eckingen Klammern noch Teil meiner variablen Namensgestaltung mit num2str.

Hier der funktionierende code (ich hab ihn dennoch mal auf das Wesentlichste gekuerzt)

Code:
for j=3:15
   
    cd ('C:\Users\saves\')

    fullFileName=(['C:\Users\saves\RtimeS' num2str(j) '_hrv.mat']);
   
     if  exist (fullFileName, 'file')==2; % does the file exist?
         load (fullfileName);  
    else
      warningMessage =  sprintf('Warning: file does not exist:\n%s', fullFileName);
      uiwait(msgbox(warningMessage));
    end
    j=j+1;
   
end


Den " cd ('C:\Users\saves\')" Teil hatte ich zuerst ausserhalb der For schleife stehen. Das hat zu dem Fehler gefuert. Das cd ueberfluessig ist kannte ich nicht. Gut zu wissen.

Danke nochmal fuer deine Hilfe. Ich werd mich in Zukunft um eindeutigere Beschreibung bemuehen.

Euer Fekal
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.