Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Bücher:

MATLAB und Simulink: Grundlegende Einführung f. Studenten

Studierende:
weitere Angebote

Partner:


Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

csv-Datei

 

eve
Forum-Anfänger

Forum-Anfänger


Beiträge: 41
Anmeldedatum: 18.08.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.08.2010, 15:55     Titel: csv-Datei
  Antworten mit Zitat      
Hallo zusammen,
fange gerade mit otave an und es hapert schon beim Einlesen....csv-Dateien sind leider auch mehr oder weniger Neuland für mich..
Kann ich nicht einfach mit
Code:
fid = csvread('filename.csv');

die Datei einlesen? Octave meint immer: file not found.
"Range" in fid=csvread('filename',zeile, spalte, range) sind doch die Zeilen, die er überspringen soll, oder? So wie man das in matlab mit "headerlines,n" angibt. Oder bin ich auf dem Holzweg?
Bitte um Aufklärung...
Kann man sich eigtl. die Matrixen der Variablen wie in Matlab in der Konsole anzeigen lassen?
Grüße
eve
Private Nachricht senden Benutzer-Profile anzeigen


aj.geissler
Forum-Guru

Forum-Guru



Beiträge: 251
Anmeldedatum: 26.11.07
Wohnort: Seeheim-Jugenheim
Version: ---
     Beitrag Verfasst am: 19.08.2010, 18:20     Titel:
  Antworten mit Zitat      
Hi,

anstelle von filename.csv würde ich
a) entweder den vollen Pfad "C:\xxx\yyy\filename.csv" angeben oder
b) die CSV-Datei in einen "Octave-bekannten" bekannten Pfad legen

Grüße
Andreas
_________________

Andreas Geißler
Private Nachricht senden Benutzer-Profile anzeigen
 
eve
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 41
Anmeldedatum: 18.08.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.08.2010, 20:52     Titel:
  Antworten mit Zitat      
Hi Andreas!
Muss ich das auch machen, wenn das Skript und das file eh im selben Ordner sind?
Private Nachricht senden Benutzer-Profile anzeigen
 
aj.geissler
Forum-Guru

Forum-Guru



Beiträge: 251
Anmeldedatum: 26.11.07
Wohnort: Seeheim-Jugenheim
Version: ---
     Beitrag Verfasst am: 20.08.2010, 05:36     Titel:
  Antworten mit Zitat      
Hi,

nein, das muss man nicht machen, denn dann ist ja die CSV in einem "Octave-bekannten" Ordner.

Vielleicht ist die Verwendung von dlmread günstiger ?

Zitat:

help dlmread
-- Loadable Function: DATA = dlmread (FILE)
-- Loadable Function: DATA = dlmread (FILE,SEP)
-- Loadable Function: DATA = dlmread (FILE,SEP,R0,C0)
-- Loadable Function: DATA = dlmread (FILE,SEP,RANGE)
Read the matrix DATA from a text file The RANGE parameter must be
a 4 element vector containing the upper left and lower right
corner [R0,C0,R1,C1] The lowest index value is zero.


Da es sich bei CSV-Dateien um ganz klassische Textdateien handelt, könnte sich evtl. auch der Ansatz mit einfachen Befehlen zum Lesen von Textdateien lohnen. Hier könnte man dann variabel auf veränderte Header reagieren.

Grüße
Andreas
_________________

Andreas Geißler
Private Nachricht senden Benutzer-Profile anzeigen
 
eve
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 41
Anmeldedatum: 18.08.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.08.2010, 07:31     Titel:
  Antworten mit Zitat      
Guten Morgen!
Danke, so liest er sie ein, habe den Range via 'A2..Q15' eingegeben, hoffe, dass der richtige Range ist, da die Werte nicht pro Kästchen eingegeben sind...
Nur gibt er mir jetzt komische Zahlen aus...kann ich das Einleseformat ändern?
Gruß
eve
Private Nachricht senden Benutzer-Profile anzeigen
 
eve
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 41
Anmeldedatum: 18.08.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.08.2010, 08:58     Titel:
  Antworten mit Zitat      
Irgendwie check ich´s nicht...
1. in die schwarze Konsole mit grauer Schrift kann ich ins Verzeichnis wechseln, alles eingeben und Skripte ausführen lassen und es funktioniert.
Wenn ich aber im Notepad++ im richtigen Verzeichnis ein Skript über die Console laufen lassen will, sagt er mir: CreateProcess() failed with error code 2: Das System kann die angegebene Datei nicht finden. Question Hab ich irgendwas nicht installiert?
2. wenn ich in der schwarz/weißen Konsole [x,y] = testread(file.txt,%f %f, 'headerlines',1); plot(x,y) eingebe, verschwindet zwar das octave-3.2.4.exe: linenumber> und es ist nur noch der Prompt> zu sehen, aber es tut sich nichts...
Oder bin ich einfach nur unfähig?
Private Nachricht senden Benutzer-Profile anzeigen
 
eve
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 41
Anmeldedatum: 18.08.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.08.2010, 09:47     Titel:
  Antworten mit Zitat      
Wenn ich shcon mal am verzweifeln bin, dann richtig...
Lies die csv.Datei nun mit fid=dlmread('filename.csv',[ro,c0]) ein. Mit [ro,co] kann man ja einstellen, ab welcher Zeile und Spalte octave das Einlesen beginnen soll, oder?
Bei meinen Daten die sonst im normal wie z.B. 3.438 geschrieben sind, ist aber auch das Datum im yyyy-mm-dd und die Zeit hh:mm:ss angegeben, die einzelnen Werte sind durch ein Komma getrennt.
In matlab macht man das ja mit %f %*lc %f %*lc usw., wie handle ich das in octave?
Und das Komma beachtet dlmread(file,',',r0c0) so? Beim Seperator?
Fragen über Fragen....hoffe, dass irgendjemand die Antworten darauf hat...
Private Nachricht senden Benutzer-Profile anzeigen
 
aj.geissler
Forum-Guru

Forum-Guru



Beiträge: 251
Anmeldedatum: 26.11.07
Wohnort: Seeheim-Jugenheim
Version: ---
     Beitrag Verfasst am: 20.08.2010, 14:22     Titel:
  Antworten mit Zitat      
Hi,

poste doch mal bitte die csv-Datei.
Dann kann das Forum sich daran ja mal austoben...

Grüße
Andreas
_________________

Andreas Geißler
Private Nachricht senden Benutzer-Profile anzeigen
 
eve
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 41
Anmeldedatum: 18.08.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.08.2010, 07:51     Titel:
  Antworten mit Zitat      
Hi,
so nun ein bisschen was zum Austoben:
Daten werden nun alle wunderbar eingelesen, nur das Datum mag noch nicht so recht...
In der csv-Datei ist es so eingegeben:
2009-02-05 09:00:00
2009-02-05 09:10:00
2009-02-05 09:20:00

Ich haben nun:
Code:
date = csvread('000049_2009-02-05_stat.csv',[55 0 143 0]);
time = csvread('000049_2009-02-05_stat.csv',[55 1 143 1]);

date_time=([date,time]);

Raus kommt:
(2009,-2)(2009,-2)(9,0)
(2009,-2)(2009,-2)(9,0)
(2009,-2)(2009,-2)(9,0)

Code:
sdate=datestr(date_time)
mag er nicht...
Wie kann ich das Datum in octave denn in ein serial date number umwandeln?

Schönen Montag!
Eva
Private Nachricht senden Benutzer-Profile anzeigen
 
eve
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 41
Anmeldedatum: 18.08.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.08.2010, 09:22     Titel:
  Antworten mit Zitat      
PS: Und mal so ne generelle Frage...wieviele Spalten kann octave oder matlab eigtl. einlesen?
Private Nachricht senden Benutzer-Profile anzeigen
 
eve
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 41
Anmeldedatum: 18.08.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.08.2010, 12:37     Titel:
  Antworten mit Zitat      
Hat noch nie jemand Datum mit octave eingelesen? Der andere Post bzgl. Datum und Zeit einlesen ist ja auch unbeantwortet...
Private Nachricht senden Benutzer-Profile anzeigen
 
aj.geissler
Forum-Guru

Forum-Guru



Beiträge: 251
Anmeldedatum: 26.11.07
Wohnort: Seeheim-Jugenheim
Version: ---
     Beitrag Verfasst am: 26.08.2010, 10:05     Titel:
  Antworten mit Zitat      
Hi,

mit datestr wandelst Du einen Skalar in ein Datum um.

Bsp:

(1)
>> datestr(1)

Ausgabe
ans = 01-Jan-0000

(2)
>> datestr(730000)

Ausgabe
ans = 02-Sep-1998

Mit dem Befehl datenum kannst Du ein Datum, welches in Form eines Strings angegeben ist, in ein serielles Datum (ein Zahlenwert) umwandeln.

Bsp:
(3)
>> q=datestr(730000); disp(q); w=datenum(q); disp(w);

Ausgabe
02-Sep-1998
730000

Eventuell musst Du deine eingelesenen Zeitinhalte auf Octave-Bedürfnisse anpassen.

Grüße
Andreas
_________________

Andreas Geißler
Private Nachricht senden Benutzer-Profile anzeigen
 
eve
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 41
Anmeldedatum: 18.08.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.08.2010, 15:49     Titel:
  Antworten mit Zitat      
Hi Andreas!
Was meinst du mit "eingelesenen Zeitinhalte auf Octave-Bedürfnisse anpassen" ?
Ich weiß nicht was (2009,-2) (eigtl. 2009_01_05) und 9 (eigtl: 09:10:00) für Formate sein sollen und in was man sie umwandeln soll...
Viele Grüße
Eva
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
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2021 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.