hi
ich möchte eine Datei laden und die Werte einlesen. Das geht ohne Probleme! Nun möchte ich falls die datei die eingelesen wird nicht den Werten entspricht die erwartet werden soll eine Fehler Meldung kommen und die funktion beendet werden.
Code:
waitfor(warndlg('Bei Laden von User Daten werdern die aktuelle Werte überschrieben','!! Warnung !!')) [datei,pfad]=uigetfile('*.txt','Datei öffnen');
cd(pfad);
korrekturwerte=dlmread(datei);
also ich wollte überprüfen ob die datei richtig in 'korrekturwerte' eingelesen wurde - falls nicht 'error'.
also das lesen funzt ohde jede Probleme - solande die datei dem erwarteten inhalt entspricht. Falls nun aber der User eine andere wählt - eine Datei die nicht dem entspricht was Matlab erwartet heult er rum. und dies will ich abfangen durch:
IF - Ok/
else - disp [bzw fehlermeldung]/
end
Hi,
was heißt denn für dich "richtig"? Weil dlmread kann ja nur numerische Werte einlesen und liefert bei nicht-numerischen Werten von sich aus schon eine Fehlermeldung, oder?!
also richtig - na ja die werte in 'korrekturwerte'(1:13) eingelesen wird.
Falls das nicht gemacht wird dann soll eine Fehlermeldung ausgegeben werden. Es sind immer 13 Werte. Das heist wenn es entweder 12 od. 14 werte sind oder die werte sonst nciht passen (weil evt. nan) dann eine fehlermeldung ausgegeben wird.
Kurz gesagt - ich wechsel vorher das Verzeichniss. Und wenn nun die Datei nicht geöffnet werden kann bzw. die If/ Else nicht abgeschlossen werden kann dann sprint er ja nicht wieder zurück.
hier mal der vollständige quelltext
Code:
waitfor(warndlg('Bei Laden von User Daten werdern die aktuelle Werte überschrieben','!! Warnung !!'))
orginal_cd=pwd; aktuelles_verzeichnis=pwd;
cd(strrep(aktuelles_verzeichnis, '\System', '\Daten'));
[datei,pfad]=uigetfile('*.txt','Datei öffnen');
cd(pfad);
korrekturwerte=dlmread(datei);
rausspringt und garnicht in die IF/else abfrage reinkommt.
Ich muss ihm sagen - versuche einzulesen - wenn nicht geht heul(error('message')) rum und geh wieder ins orginale Verzeichniss - wenn geht dann weise zu und geh wieder zurück.
... das selbe symtom wenn der User auf "abbrechen" beim auswählen der Datei drückt. Er springt einfach nicht ins Orginalverzeichniss zurück.
(PS: ich möchte, dass dem User der Ordner "Daten" als erstes angezeigt wird.)
Gibt es einen Befehl der sagt - wenn es irgendeinen Fehler gibt mache "dies" - ansonsten wenn alles OK dann mache "das"?
Also der jeden möglichen fehler in der function (datei öffnen/einlesen) abfängt.
lies nochmal, was outsider geschrieben hat. Damit umgehst Du Deine ganzen Probleme, weil Du nicht das Verzeichnis wechseln musst, sondern nur aus einem anderen Verzeichnis die Daten einliest.
Die Funktion, die Du meinst, gibt es aber auch: sie heißt
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
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.