Guten Tag zusammen!
Ich habe (so denke ich) ein ziemlich leicht zu lösendes Problem:
Ich möchte eine .csv datei einlesen und als Matrix abspeichern (was matlab ja automatisch macht...).
Das erste Problem tritt bereits auf, wenn ich den Dateinamen von Hand eingebe, dann erscheint folgende Fehlermeldung:
Code:
c_tab = csvread('HEB.csv');
??? Error using ==> dlmread at 145
Mismatch between file and format string.
Trouble reading number from file (row 1, field 1) ==> HEB;;
ich denke, dass das etwas damit zu tun hat, dass in der csv-Datei sowohl Zahlen als auch Strings gespeichert sind. Wenn ja, wie kann ich das beheben? Es ginge notfalls auch, dass ich die Strings, die in den ersten vier Zeilen stehen (als überschriften für die Werte) weglasse. wie müsste ich das dann machen?
Mein zweites Problem ist, dass ich die Datei dann automatische einlesen muss. Es öffnet sich ein listdlg, bei dem hier z.B. "HEB" ausgewählt und als variable bespeichert wird. Entsprechend dazu gibt es dann eine csv Datei mit genau dem Namen. Wie kann ich das machen?
Ich hoffe, das war soweit verständlich!
Vielen Dank im Voraus für die Hilfe!
wobie ich mal geraten habe, dass die CSV-Datei mit ";" getrennt ist, sonst entsprechend ändern.
Bzgl. Problem 2: wenn es die Variable gibt (z.B. foo), dann muss der Variablenname übergeben werden:
hi
danke für die schnelle antwort!!!
hat mein problem aber leider noch nicht gelöst
ich habe das jetzt mal so angepasst, aber ich bekomme wieder eine fehlermeldung:
??? Error using ==> textscan
Invalid file identifier. Use fopen to generate a valid file identifier.
der code ist folgendermaßen (vllt wird dann auch listdlg klarer...)
noch eine frage zu deinem Beitrag:
bei fopen hast du 'rt' eingefügt, was ich in der hilfe nicht finde, müsste das vllt 'r' für read heißen?
und was meinst du mit dem ';'? die csv files sind tabellenblätter aus einer exportierten excel-datei...
ausprobieren, dann steht in message die Fehlermeldung.
Delimiter: csv steht für comma-separated-value. Nun ist in Deutschland meist das Komma für Fließkommazahlen verwendet, so dass oft ein Semilolon statt einem Komma das Trennzeichen ist. Einfach die Datei mit Notepad o.ä. aufrufen und schauen, welches es ist.
'rt': das r steht für "Read", und "t" für Text. Windows hat ja die unsägliche Eigenart, mal mit \r\n das Zeilenende zu markieren, mal nur mit \n. Das zusätzliche "t" sagt MATLAB, dass es hier sich nach dem Betriebssystem richten soll ... ist meist beim schreiben wichtiger als beim lesen einer Datei.
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.