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

Probleme beim Importieren von csv-Daten

 

Schnu
Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 28.09.09
Wohnort: Duisburg
Version: ---
     Beitrag Verfasst am: 16.07.2012, 12:23     Titel: Probleme beim Importieren von csv-Daten
  Antworten mit Zitat      
Hallo zusammen.

Ich verzweifele gerade daran ein Programm zu schreiben, mit dem ich Daten aus csv-Dateien importieren kann.

Das Problem liegt in der ARt begründet, wie die Daten gespeichert werden.

Die csv-Dateien haben 20 Headerzeilen. Danach kommen die Daten in folgender Form

13.07.12 12:03:01,C,25,625

1) Datum und Uhrzeit
2) Einheit
3) Messwert vor dem Komma
4) Messwert nach dem Komma

Das Problem liegt bei den Nachkommastellen, da hier mal keine bis maximal 3 Nachkommastellen angegeben werden. Das Programm mit dem die Messdaten gespeichert werden, lässt schon mal endständige Nachkommastellen weg, so dass die Daten auch die Form

13.07.12 12:03:01,C,25,62
oder
13.07.12 12:03:01,C,25,005
oder
13.07.12 12:03:01,C,25

haben können.

Im Letzten Fall erhalte ich bei importdata Zellen mit NaN, die ich aber schon beseitigt habe.

Importdata lässt aber auch vorangestellte Nullen weg, so dass aus 005 eine 5 wird, also von einer 500 oder 050 nicht mehr zu unterscheiden ist.

Wie kann ich die Daten jetzt so importieren, dass die Spalte mit den Nachkommastellen, immer auf 3 Stellen aufgefüllt werden und auch vorangestellte Nullen nicht verschwinden?

Hilfreich wäre eventuell eine Möglichkeit, die Zahl als ganzes zu erfassen und hier das Komma nicht als Trennzeichen zwischen zwei Spalten zu interpretieren. Aber wie?

csvread bietet diese Möglichkeit leider auch nicht.

Für eure Lösungsvorschläge bin ich schon jetzt dankbar.

Gruß

Schnu
Private Nachricht senden Benutzer-Profile anzeigen


Schnu
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 28.09.09
Wohnort: Duisburg
Version: ---
     Beitrag Verfasst am: 19.07.2012, 14:59     Titel:
  Antworten mit Zitat      
Hallo.

Habe das Problem inzwischen gelöst.

Code:

y = textread(names{1,f},'%s','headerlines', 20,'delimiter','C');
for lauf = 1:2:size(y,1)
        Werte(f).Zeit{(lauf+1)/2,1} = y{lauf,1}(1:end-1);      %überflüssige Kommas entfernen
        Werte(f).Daten{(lauf+1)/2,1} = y{lauf+1,1}(2:end);  
end

    Werte(f).Daten = str2double(strrep(Werte(f).Daten,',','.'));     %Komma durch Punkt ersetzen
    Werte(f).Zeit = datenum(Werte(f).Zeit, 'dd.mm.yy HH:MM:SS');    % Datum umwandeln
 


in "names" stehen die Dateinamen

Bisschen umständlich, aber besser kann ichs nicht.

Bis denn denn
SCHNU
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.