WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

CSV einlesen mit Leerzeichen und Komma als Trennung

 

Stocki5
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 27.04.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.04.2015, 17:08     Titel: CSV einlesen mit Leerzeichen und Komma als Trennung
  Antworten mit Zitat      
Hallo Zusammen,

ich möchte gerne eine .csv-Datei einlesen und verschiedene Daten daraus Nutzen.

Die Datei sieht folgendermaßen aus:

"2014-01-01 00:00:00",19.9832
"2014-01-01 00:00:01",19.9744
"2014-01-01 00:00:02",20.0335
"2014-01-01 00:00:03",20.0281
"2014-01-01 00:00:04",20
...
"2014-01-06 13:58:36",1472.66
"2014-01-06 13:58:37",1484.26
"2014-01-06 13:58:38",1493.1
"2014-01-06 13:58:39",1499.85
"2014-01-06 13:58:40",1519.26


Das sind sekündliche Messwerte einer PV-Anlage einen Monat lang. Daraus möchte ich anschließend stündliche Mittelwerte berechnen. Deshalb möchte ich gerne auf den Tag (z.B. 01 oder 06), Stunde (z.B. 00 oder 13) und den Messwert (z.B. 19.9744) zugreifen und diese in einem Array/Datei o.ä. abspeichern. Zählen der Zeilen und daraus Mitttelwerte bilden geht leider nicht, da ab und zu Messwerte fehlen.

Bis jetzt habe ich die Daten vor der weiteren Verwendung im Texteditor bearbeitet und "2014-01- und. ", durch Leerzeichen ersetzt und konnte die Datei anschließend einlesen und auf die benötigten Werte zugreifen und die Mittelwerte berechnen.

Da ich aber nun mehrere Monate hintereinander einlesen möchte und die Datei nicht jedes mal vorher bearbeiten will, bin ich auf der Suche nach einer bessere Lösung. Meine Versuche die Datei mit fopen/load/textscan/textread o.ä. zu öffnen und zu bearbeiten sind leider alle gescheitert, weil ich die 3 Spalten nie getrennt bekommen habe, da die Werte einmal durch Leerzeichen und einmal durch Komma getrennt ist.

Ich habe auch hier im Forum leider noch keinen vergleichbaren Fall gefunden, bei dem Messwerte mit Komma und gleichzeitig Leerzeichen getrennt sind.

Ich hoffe es kann mir jemand weiterhelfen!
Vielen Dank schon mal im vorraus!!
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 27.04.2015, 17:41     Titel:
  Antworten mit Zitat      
was hast du denn bis jetzt versucht?`code beispiele etc. außerdem wäre es sicherlich hilfreich eine beispiel datei zur verfügug zu stellen.
wie man die kommas durch punkte ersetzt da gieb es auch schon vertige sachen im file exchange oder du machst es selber indem du alles als str einliest und dann mir regexp die kommas durch punkte ersetzt. danach kannst du es dann mit str2num umwandeln.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Stocki5
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 27.04.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.04.2015, 09:24     Titel:
  Antworten mit Zitat      
Hallo Winkow,

sorry, Beispieldatei wollte ich eigentlich hochladen, hab ich wohl vergessen. Hole ich hiermit nach!

Zu deiner Frage was ich schon alles versucht habe: wie oben schon geschrieben, die gängigen Einlese-Befehle: fopen/load/textscan/textread o.ä.

1.txt
 Beschreibung:
Beispieldatei

Download
 Dateiname:  1.txt
 Dateigröße:  2.55 MB
 Heruntergeladen:  571 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 28.04.2015, 09:48     Titel:
  Antworten mit Zitat      
Zitat:
wie oben schon geschrieben, die gängigen Einlese-Befehle: fopen/load/textscan/textread o.ä.
ohne den code kann man aber schwer sagen was schief läuft. darum die frage nach den codebeispielen.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Stocki5
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 27.04.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.04.2015, 10:04     Titel:
  Antworten mit Zitat      
Code:

out=textread('Januar_2014.csv', '%s', 'whitespace',',');
    out1=out(4:2:end);
    out2=out(3:2:end);
 

trennt mir Zeitstempel und Messwert (also Trennung beim Komma)

Code:

fid = fopen(' Januar_2014.csv');
out=textscan(fid,'%s  %s  %s')
fclose(fid)
 

trennt beim Leerzeichen
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 28.04.2015, 10:33     Titel:
  Antworten mit Zitat      
ich würde die beiden zeit informationen nicht trenenn.
Code:
fid=fopen('1.txt')
A=textscan(fid,'%s %f','headerlines',1,'delimiter',',');
fclose(fid)

dann kann man das mit datenum noch umwandeln wenn man will zum rechnen Smile
Code:
B=datenum(A{1}(:),'"yyyy-mm-dd HH:MM:SS"');
C=A{2}(:);

_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Stocki5
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 27.04.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.04.2015, 13:40     Titel:
  Antworten mit Zitat      
Vielen Dank!
Musste zwar mein anders Programm ein bisschen anpassen, aber so funktionierts jetzt super!
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.