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

[b]Nur bestimmten Datenbereich aus txt-Datei impotieren[/b]

 

Frankyboy
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 12.03.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.03.2008, 15:52     Titel: [b]Nur bestimmten Datenbereich aus txt-Datei impotieren[/b]
  Antworten mit Zitat      
Hallo an alle Experten! Very Happy

Ich habe eine txt-Datei mit verschiedenn Daten (z.B.: Temperatur, Druck,usw.) welche durch ein Semikolon getrennt sind. Eine Datenreihe ist zum Beispiel das Datum mit der Uhrzeit (Ein ganzes Monat steht drinnen also z.B.: vom 01.01 - 31.01 mit den dazugehörigen Werten).

Die ganze Datei kann ich auslesen, aber wie stelle ich es an damit ich nur die Daten auslese, welche z.B.: zum 10.01, 11.01...... gehören.
D.h. Ich möchte die Daten tagesweise in eine eigene Matrix schreiben.

Wäre echt super wenn mir jemand helfen könnte!

lg
Franky
Private Nachricht senden Benutzer-Profile anzeigen


noob
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 70
Anmeldedatum: 15.01.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.03.2008, 16:14     Titel:
  Antworten mit Zitat      
fgetl(fid) ist ein wunderding

lg noob

ps:

du kannst auch die txt datei anhängen damit sich alle was darunter vorstellen können
Private Nachricht senden Benutzer-Profile anzeigen
 
Frankyboy
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 12.03.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.03.2008, 09:59     Titel:
  Antworten mit Zitat      
Hallo noob!

Danke für deine Antwort!

Ich habe im Anhang die txt-Datei mit den Messdaten, sowie das m-file zur Auslesung der Daten, angefügt.

Könntest du mir vielleicht zeigen, wie du es mit dem Befehl fgetl(fid) machen würdest, damit ich nur die Daten vom 02.06.2006 bekomme.


lg
Franky

Beispiel.zip
 Beschreibung:

Download
 Dateiname:  Beispiel.zip
 Dateigröße:  75.63 KB
 Heruntergeladen:  590 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
noob
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 70
Anmeldedatum: 15.01.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.03.2008, 10:54     Titel:
  Antworten mit Zitat      
sorry, dachte mir die daten liegen etwas anders vor.

ich versuchte ein paar sachen, aber bin nicht wirklich schlauer gworden

eine ansatz wäre eventuell, den "DateTimeStamp" nachmals aufzuteilen.

in Date =DateTimeStamp(1:end,1:Cool und
Time = DateTimeStamp(1:end,10:end)

dann mit if (Date == '2.6.2006')

funktion

end

naja der wille war da

lg noobs

ps.: viel erfolg
Private Nachricht senden Benutzer-Profile anzeigen
 
Frankyboy
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 12.03.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.03.2008, 21:58     Titel:
  Antworten mit Zitat      
Hallo miteinander!

Bin am verzweifeln.

Ich schaffe es einfach nicht, dass die Daten tageweise ausgelesen und jeweils einer Matrix zugeordnet werden (Detail siehe angehängte Datei (Beispiel.zip) - zu finden zwei Antworten vorher).

Ich finde auch in Büchern nichts brauchbares.

Bitte helft mir - ich weiß echt nicht mehr weiter!

Danke

LG
Franky
Private Nachricht senden Benutzer-Profile anzeigen
 
Michaela
Forum-Century

Forum-Century


Beiträge: 239
Anmeldedatum: 12.07.07
Wohnort: ---
Version: bis 2007b
     Beitrag Verfasst am: 14.03.2008, 00:47     Titel:
  Antworten mit Zitat      
[sorry, nur eine sehr schnelle antwort. ist schon spät]

Dein Code sieht doch schon gut aus. Wenn Du erstmal alles ine iner MAtrix anstelle von Vektoren lässt, dann kannst due das Datum als eigene Spalte in der MAtrix in epoch stehen haben. Und dann mittels find auf epoch (jeweils auf einen Tag 0:00 bis 24:00) die Daten sortieren bzw. in Untermatrizen kopieren.
_________________

---------------------------------------------------------------
Leider habe ich daheim zwar Internet aber kein Matlab - daher sind alle Syntaxbeispiele circa Angaben.....
Private Nachricht senden Benutzer-Profile anzeigen
 
nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.318
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 15.03.2008, 01:33     Titel:
  Antworten mit Zitat      
Wenn Du von vorne herein nur bestimmte Zeilen lesen willst
könntest Du das so machen:
Code:
clear all;
clc;
datum='2.6.2006';
fid=fopen('Beispieldatei_Messdaten.txt');
i=1;
while 1
    tline = fgetl(fid);
    if ~ischar(tline),   break,   end
    if strfind(tline,datum)
        c{i,1}=textscan(tline,'%n %n %n %s %n %n %n %s','delimiter',';');
        EntryId(i,1)=c{i}{1};
        TrendId(i,1)=c{i}{2};
        ChannelId(i,1)=c{i}{3};
        DateTimeStamp(i,1)=c{i}{4};
        ValueReal(i,1)=c{i}{5};
        ValueLong(i,1)=c{i}{6};
        ValueBool(i,1)=c{i}{7};
        QualityTag(i,1)=c{i}(8);
        i=i+1;
    end
end
fclose(fid);

Der Rest müsste dann unverändert bleiben können.

Ich würde aber gern wissen, ob das nicht doch eleganter und vor allem
schneller ginge.
_________________

Viele Grüße
nschlange

"Chuck Norris ejakuliert fluessigen Stahl!"
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Frankyboy
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 12.03.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.03.2008, 17:14     Titel:
  Antworten mit Zitat      
Danke für eure Antworten!

Ich werde das gleich mal ausprobieren und dann berichten!

Vielleicht fällt mir ja auch noch eine Lösung ein - diese werde ich natürlich auch berichten.

lg
Franky
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 - 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.