|
|
bestimmten Bereich in CSV Datei einlesen |
|
björn_k82 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 04.10.2013, 15:02
Titel: bestimmten Bereich in CSV Datei einlesen
|
 |
|
 |
|
Hallo,
versuche gerade die CSV Datei (siehe screenshot.jpg) einzulesen.
ich benötige jedoch nur den Bereich aus (Zeile 25 Spalte 3) bis (Zeile 30 Spalte 7). Die Spalten sind, wie zu sehen, durch Komma getrennt.
habe es zuerst versucht mit:
Dies gab folgende Fehlermeldung
??? Error using ==> dlmread at 145
Mismatch between file and format string.
Trouble reading number from file (row 1, field 13) ==> LLLL
Habe es auch mit kleinerem Bereichen versucht, zB: 'C26..D27', funktioniert auch nicht.
als nächstes habe ich es probiert mit:
der Textscan wertet mir aber seltsamerweise nur die ersten 6 Zeilen aus, ich bräuchte aber 30 Zeilen damit ich damit was anfagen kann.
>> C{1}
ans =
'Vendor'
'Model'
'Version'
'Sampling'
'Total data points'
'Start time'
Am liebsten wäre es mir wenn es mit dem dlmread funktionieren würde, hab aber keine Ahnung warum das so nicht klappt.
für Hilfe wäre ich dankbar
gruß
Beschreibung: |
|
 Download |
Dateiname: |
screenshot.jpg |
Dateigröße: |
215.79 KB |
Heruntergeladen: |
481 mal |
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 04.10.2013, 16:07
Titel:
|
 |
Hallo,
bei dlmread steht in der Doku:
Zitat: |
Read ASCII-delimited file of numeric data into matrix |
Du hast aber eben keine rein-numerischen Daten.
Mit textscan bist du auf dem richtigen Weg. Du kannst ja mit 'Headerlines' die Anzahl der zu überspringenden Zeilen angeben. Wenn du weitere Hilfe brauchst, bitte die Datei anhängen, damit man selbst damit experimentieren kann.
Grüße,
Harald
|
|
|
björn_k82 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 04.10.2013, 16:56
Titel:
|
 |
Danke für die schnelle Antwort.
csv konnte ich nicht anhängen. habe es jetzt im ".txt" Format angehangen.
Mit "headerLines" war schon mal ein guter Hinweis.
Allerdings ist die Ausgabe für mich nicht ganz nachvollziehbar:
>> C{1}
ans =
1
>> C{2}
ans =
2013
>> C{3}
ans =
-10
und ab C{6}
>> C{6}
ans =
Empty matrix: 0-by-1
------------------------------------------------------------
und ich will nur die Werte von +15.36 bis +19.08
irgendwie müsste ich dann noch die ersten 2 Spalten ignorieren, also alles was vor den ersten 2 kommas steht.
wie kann ich da weite vorgehen?
Beschreibung: |
|
 Download |
Dateiname: |
Messung.txt |
Dateigröße: |
1.58 KB |
Heruntergeladen: |
326 mal |
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 04.10.2013, 17:11
Titel:
|
 |
Hallo,
Zitat: |
Allerdings ist die Ausgabe für mich nicht ganz nachvollziehbar: |
Für mich schon. textscan fängt da zu lesen an, wo du sagst. Sobald etwas nicht mehr als Zahl interpretierbar ist, und das ist bei einem Doppelpunkt der Fall, wird aufgehört.
Für das Einlesen von Strings würde ich %s verwenden. Wenn etwas nicht gebraucht wird, muss es trotzdem eingelesen werden, kann aber mit * übersprungen werden.
Bei der Verwendung von %f32 (Single)würde ich aufpassen - wenn mit den Daten noch längere Berechnungen durchgeführt werden, wird das gerne zu ungenau. Ich würde generell %f (Double) verwenden.
Grüße,
Harald
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 04.10.2013, 22:00
Titel:
|
 |
Vielen Dank Harald,
ich komme schritt für schritt weiter.
ich habe es jetzt so verstanden, dass ich durch den * in der zeile die 1, 2,8,9,10,11,12,13 te Zeile überspringe. ist das Richtig?
Dann habe ich mir gedacht, dann müsste bei C{1} folgendes rauskommen:
C{1}=
15.36
15.36
15.12
14.88
15.24
15.36
und für C{2} usw.... die jeweils nächste Spalte
als Ergebnis erhalte ich aber:
>> C{1}
ans =
NaN
NaN
3.0000
NaN
-730.6800
-730.6800
-730.5600
daraus schließe ich, dass ich doch irgendwas falsch verstanden habe!?!
Für Aufklärung wäre ich wieder dankbar
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 04.10.2013, 22:02
Titel:
|
 |
sorry,
"ich habe es jetzt so verstanden, dass ich durch den * in der zeile die 1, 2,8,9,10,11,12,13 te Zeile überspringe. ist das Richtig? "
ich meine natürlich die 1,2,8,9..... Spalte überspringen
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 04.10.2013, 22:22
Titel:
|
 |
Hallo,
Zitat: |
Dann habe ich mir gedacht, dann müsste bei C{1} folgendes rauskommen: [...] |
wenn ich meinen Code ausführe oder den Code mit deiner Anpassung des Formats bekomme ich genau das.
Arbeitest du vielleicht gerade mit einer anderen Datei?
Grüße,
Harald
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 04.10.2013, 22:51
Titel:
|
 |
das ist komisch,
ich arbeite mit der selben .csv datei.
habs aber auch mit der .txt probiert und das selbe ergebnis bekommen.
allerdings bin ich jetzt zu hause und habe nur octave, probiere es morgen nochmal bei matlab um auszuschließen das es daran liegt.
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.10.2013, 13:41
Titel:
|
 |
so.....update
bei Matlab gibts die Ergebnisse wie Erwartet
der Hinweis mit den headerLines und dem * in %*f zum überspringen der Spalten waren entscheidend für die Lösung meines Problems.
C=cell2mat(C); konnte ich im anschluss direkt gebrauchen um aus dem "Cell-Array" eine Matrix zu basteln.
Vielen Dank 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 - 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.
|
|