Verfasst am: 27.04.2015, 12:33
Titel: Einlesen einer komplizierten csv Datei
Hallo Zusammen,
ich stehe vor dem Problem, dass ich eine für meine Begriffe (als absoluter Matlab Neuling) komplizierte csv. Datei einlesen möchte um später die darin enthaltenen Werte grafisch auszuwerten.
Dabei sind die ersten vier Spalten für mich nicht von Interesse und könnten beim einlesen gelöscht werden, ebenso wie die Überschrift der ersten Zeile und die darunter liegende Leerzeile(über Headliners?!).
Ein weiteres Problem stellt das Dezimaltrennzeichen dar. In der csv Datei ist dies bislang ein , und so funktioniert das einlesen über textscan leider nicht. Hierzu habe ich im Forum dieses Skript gefunden
fid = fopen('DeineNeueDatei.csv','w');
for l = 1:length(Datum) fprintf(fid,'%s; %s; %s; %s;\n',Datum{l},Wert1_neu{l},Wert2_neu{l},Wert3_neu{l});
end fclose(fid);
Ich habe versucht diesen Code auf eine vereinfachte Ausführung der Datei anzuwenden allerdings erhalte ich immer die folgende Fehlermeldung: Error: Expression or statement is incorrect--possibly unbalanced (,(, or [.
Da ich wenig bis keine Grundkenntnisse in Matlab besitze wäre es super wenn ihr mir relativ präzise Lösungsansätze vermitteln könntet. Anbei die Datei als Zip.
zur Problematik des Dezimaltrennzeichens siehe auch hier:
http://www.mathworks.com/matlabcent.....-with-comma-decimal-point
Der Vorschlag von Per Isakson dürfte schneller, eleganter und flexibler sein als der Ansatz hier. Die modifizierte Datei kann mit textscan eingelesen werden.
Die Fehlermeldung deutet auf falsch gesetzte Klammern hin. In dem von dir geposteten Code kann ich allerdings kein derartiges Problem finden.
Error: Expression or statement is incorrect--possibly unbalanced (,(, or [.
Die Meldung bedeutet, dass Du einen Tippfehler im Code hast. Wird in der Meldung vielleicht noch erwähnt, in welcher Zeile das ist?
Bekommst Du warnungen im Editor?
vielen Dank für deinen Vorschlag. Mir ist leider ein Fehler unterlaufen und ich habe die falsche Datei ausgewählt. Die richtige Datei ist leicht anders ich wäre dir sehr dankbar wenn du den Code für diese Datei noch einmal anpassen könntest.
Ich habe es bereits selbst versucht doch leider tappe ich bisher noch etwas im dunkeln was die Auswirkung der einzelnen Befehle angeht
leider erscheint bei mir folgende Fehlermeldung:
Error using reshape
Product of known dimensions, 1049, not divisble into total number of elements, 3396.
Wenn ich nun bei reshape die Anzahl auf eine Zahl setze durch welche 3396 teilbar is erscheint folgende Fehlermeldung:
Error using cellfun Input#2 expected to be a cell array was char instead
ich has für die datei gemacht die du mir gegeben hast. wenn in anderen dateien mehr werte sind geht das so nicht. dann musst du mal die 76 setzen anstatt die 1049 solange pro zeile immernoch so viele elemente sind.
sollte das auch varieren musst du doch mal durch zählen.
_________________
Vielen Dank Winkow!
Der Code funktioniert bei mir fehlerfrei, allerdings habe ich das Problem, dass ich nicht weiß wie ich auf die Zahlen in numeric zugreifen kann.
Ich wollte eine Spalte plotten über plot (numeric{1,5}) und erhalte folgende Fehlermeldung:
Cell contents reference from a non-cell array object.
Wo liegt mein Fehler? Grundsätzlich habe ich vor die Werte einer Spalte über die Zeit in einem Diagramm darzustellen..
numeric ist kein cell array sondern ein normals array. das muss man dann auch so adressieren. das sagt aber auch die fehlermeldung.
eine spalte pltottest du dann mit
ich stehe mal wieder beim Einlesen einer Datei auf dem Schlauch. Ich habe versucht das Beispiel von Winkow anzupassen, leider tritt wieder eine Fehlermeldung auf:
entschuldige den blöden Fehler, ansich sollte die Datei 20 Spalten haben, da ist leider bei der Erfassung der Messwerte etwas schief gegangen..
Vielen Dank:)
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
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.