|
|
Anzeigen und einlesen von Dateien |
|
Leberwurst |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.11.2013, 00:15
Titel: Anzeigen und einlesen von Dateien
|
|
|
|
|
Habe ein paar Fragen zu denen Google auch nichts ausgespuckt hat.
Ich arbeite mit vier verschiedenen Matlab-versionen. 2007, 2010, 2012 unter Windows und noch einer unbekannten Version (ca. 2011) auf LinuxCluster.
Bei der 2012 Version ist mir aufgefallen das wenn ich mehr als 4 bis 5 Tausend Dateien in einem Ordner habe, dann kann er sie mir nicht mehr in meinem Current Directory anzeigen. Hab dann einfach ein leeres Fenster während sie bei der 2007er und der 2010er Version angezeigt werden. Kann man das irgendwie ändern/umstellen. Es ist extrem nervig die Dateien jedes Mal über irgendeine Suche zu öffnen.
Ich habe ein Programm geschrieben das nacheinander 17000 Textdaten mit Messdaten einlesen und verarbeiten soll. Die Dateien sind nicht groß (5MB). Bei der 2010 und bei der 2012 bricht er nach kurzer Zeit (400 Dateien) ab mit dem Hinweis, dass die Datei nicht vorhanden ist und er sie deshalb nicht einlesen kann.
Da ich die Dateinamen vor dem einlesen generiere (sind nur Nummern und ein paar Buchstaben die sich ändern) sehe ich den letztgenerierten Namen und kann die Datei suchen. In beiden Fällen war sie vorhanden.
Bei der Linuxversion bricht er wegen der gleichen Sache ab, allerdings kann ich nicht schauen bei welcher Datei. Ich kann mir nur das Logfile mit dem von Matlab ausgeworfenen Fehler anschauen. Die Linuxversion kommt wesentlich weiter (1000 Dateien) jedoch schafft sie auch nicht mal näherungsweise die Hälfte.
Ich Arbeite jeweils komplett in einem Ordner (alle meine M-files und Txt-Dateien sind in einem Ordner), allerdings ist der Ordner i einem Netzwerklaufwerk und nicht lokal. Die Text-Dateien wurden mit dem Linuxcluster erstellt und dann heruntergeladen um zu schauen wo der Fehler liegt.
Die 2007er Version habe ich so nicht testen können weil ich sonst zuviel Datenmüll produziere und Hardware belaste.
Hier im Forum habe ich diesbezüglich auch nichts gefunden.
Sind jemandem ähnliche Probleme mit Matlab bekannt?
MFG Leberwurst
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 24.11.2013, 09:12
Titel:
|
|
Hallo,
es gibt seit vielen Jahren halbjährliche Releases von MATLAB, R20xxa und R20xxb. Gerade in 2012 ist es sehr wichtig zu unterscheiden, welches der beiden Releases man verwendet, da sich die Bedienoberfläche stark geändert hat.
Zum Problem mit dem Einlesen der Dateien:
Um welches Dateiformat handelt es sich?
Mit welchem Befehl liest du die Dateien ein?
Wenn du das Programm wiederholt ausführst, wird dann immer bei derselben Datei abgebrochen? Falls ja: gibt es etwas, das diese eine Datei von den anderen unterscheidet?
Grüße,
Harald
|
|
|
Sirius3 |
Forum-Guru
|
|
Beiträge: 441
|
|
|
|
Anmeldedatum: 11.11.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.11.2013, 10:40
Titel:
|
|
Hallo Leberwurst,
wenn ich raten soll, und was anderes kann ich bei den wenigen Angaben ja auch nicht machen. dann würde ich darauf tippen, dass Du die Dateien nicht wieder ordentlich schließt.
|
|
|
Leberwurst |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.11.2013, 21:33
Titel:
|
|
|
|
|
Hallo,
ich habe noch einmal geschaut. Die LinuxVersion ist eine Matlab R2012a 64-bit Version.
Das Matlab R2012x was unter Windows läuft hat auf jeden Fall so eine neue Benutzeroberfläche die ich nicht mehr so schön finde (ist zu ungewohnt). Kann derzeit nicht nachgucken weil ich nicht in die Uni komme.
Habe das Programm gestern Abend noch einmal im Linux gestartet.
Während die Linuxversion nach etwas mehr als 1100 Dateien die Fehlermeldung ausgibt: {Error using textread (line 167) File not found.} haben die auf Windows installierten Matlabs bereits nach ca. 400 Dateien mit dieser Meldung abgebrochen.
Es wurde alles mit denselben m-files gerechnet und gestartet.
Die Txt-Dateien haben ein normales ASCII und wurden davor bereits mit Matlab erstellt. Ich werte die Messwert-Dateien stufenweise aus da es nicht möglich ist alle mit einem mal einzulesen (ich habe es zumindest nicht getestet).
Das erste mal einlesen tue mit textread dabei kommt dann auch nach etlichen Dateien die Fehlermeldung. Die genaue Einlesung kommt dann mit fopen.
Doch ich schließe die Dateien wieder, da matlab sonst rumjammert das zu viele Dateien geöffnet sind. Über diesen Fehler war ich auch schon gestolpert.
Mit freundlichen Grüßen
Leberwurst
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 24.11.2013, 21:42
Titel:
|
|
Hallo,
ganz oben in der Doku zu textread steht:
Zitat: |
textread is not recommended. Use textscan instead. |
Das würde ich bei diesen Problemen zumindest erwägen.
Die Frage, ob der Abbruch immer bei derselben Datei erfolgt und ob das Problem auch auftritt, wenn diese Datei für sich genommen eingelesen werden soll, ist leider unbeantwortet geblieben.
Im Zweifelsfall wäre meine Empfehlung, sich an den Technischen Support von MathWorks zu wenden.
Grüße,
Harald
|
|
|
Leberwurst |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 25.11.2013, 02:22
Titel:
|
|
Hallo Harald,
die frage mit der Wiederholbarkeit kann ich nicht beantworten da meine kompletten Daten an der Uni sind und die entsprechenden Matlablizenzen auch.
Ich nutze das textread nur um die Zeilenanzahl der Datei herauszubekommen und eine entsprechend große Matrix mit Nullen zu erzeugen die ich dann mit fopen und einer while-schleife befülle. Da ich bereits in textread den Dateinamen angebe stürzt er berits hier ab wenn die Datei nicht vorhanden ist bzw. er sie nicht findet.
Mit freundlichen Grüßen
Leberwurst
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 25.11.2013, 11:04
Titel:
|
|
Hallo,
das Nutzen von textread zur Vorbelegung sollte sich vermeiden lassen.
Ich würde eines von zwei Dingen versuchen:
a) Vorbelegung weglassen. In neueren Versionen von MATLAB ist der Performance-Verlust nicht so stark.
b) aus der Dateigröße (erhältlich über dir-Befehl) die vorzubelegende Matrixgröße erschließen.
Grüße,
Harald
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| RSS
Hosted by:
Copyright © 2007 - 2024
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.
|
|