|
eve |
Forum-Anfänger
|
|
Beiträge: 41
|
|
|
|
Anmeldedatum: 18.08.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.08.2010, 15:55
Titel: csv-Datei
|
|
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
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
|
|
|
|
|
aj.geissler |
Forum-Guru
|
|
Beiträge: 251
|
|
|
|
Anmeldedatum: 26.11.07
|
|
|
|
Wohnort: Seeheim-Jugenheim
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.08.2010, 18:20
Titel:
|
|
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
|
|
|
eve |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 41
|
|
|
|
Anmeldedatum: 18.08.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.08.2010, 20:52
Titel:
|
|
Hi Andreas!
Muss ich das auch machen, wenn das Skript und das file eh im selben Ordner sind?
|
|
|
aj.geissler |
Forum-Guru
|
|
Beiträge: 251
|
|
|
|
Anmeldedatum: 26.11.07
|
|
|
|
Wohnort: Seeheim-Jugenheim
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.08.2010, 05:36
Titel:
|
|
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
|
|
|
eve |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 41
|
|
|
|
Anmeldedatum: 18.08.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.08.2010, 07:31
Titel:
|
|
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
|
|
|
eve |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 41
|
|
|
|
Anmeldedatum: 18.08.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.08.2010, 08:58
Titel:
|
|
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. 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?
|
|
|
eve |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 41
|
|
|
|
Anmeldedatum: 18.08.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.08.2010, 09:47
Titel:
|
|
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...
|
|
|
aj.geissler |
Forum-Guru
|
|
Beiträge: 251
|
|
|
|
Anmeldedatum: 26.11.07
|
|
|
|
Wohnort: Seeheim-Jugenheim
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.08.2010, 14:22
Titel:
|
|
Hi,
poste doch mal bitte die csv-Datei.
Dann kann das Forum sich daran ja mal austoben...
Grüße
Andreas
_________________
Andreas Geißler
|
|
|
eve |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 41
|
|
|
|
Anmeldedatum: 18.08.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.08.2010, 07:51
Titel:
|
|
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:
Raus kommt:
(2009,-2)(2009,-2)(9,0)
(2009,-2)(2009,-2)(9,0)
(2009,-2)(2009,-2)(9,0)
mag er nicht...
Wie kann ich das Datum in octave denn in ein serial date number umwandeln?
Schönen Montag!
Eva
|
|
|
eve |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 41
|
|
|
|
Anmeldedatum: 18.08.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.08.2010, 09:22
Titel:
|
|
PS: Und mal so ne generelle Frage...wieviele Spalten kann octave oder matlab eigtl. einlesen?
|
|
|
eve |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 41
|
|
|
|
Anmeldedatum: 18.08.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 25.08.2010, 12:37
Titel:
|
|
Hat noch nie jemand Datum mit octave eingelesen? Der andere Post bzgl. Datum und Zeit einlesen ist ja auch unbeantwortet...
|
|
|
aj.geissler |
Forum-Guru
|
|
Beiträge: 251
|
|
|
|
Anmeldedatum: 26.11.07
|
|
|
|
Wohnort: Seeheim-Jugenheim
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.08.2010, 10:05
Titel:
|
|
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
|
|
|
eve |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 41
|
|
|
|
Anmeldedatum: 18.08.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.08.2010, 15:49
Titel:
|
|
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
|
|
|
|
|
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 - 2024
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.
|
|