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

komplexeres ASCII File einlesen

 

Subotai
Forum-Anfänger

Forum-Anfänger


Beiträge: 38
Anmeldedatum: 18.07.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.07.2013, 13:50     Titel: komplexeres ASCII File einlesen
  Antworten mit Zitat      
Hallo,
ich habe bisher mit R gearbeitet, verwende jetzt aber Matlab. Trotz Suche in Google habe ich folgendes Problem:
Ich will eine ASCII Datei einlesen und mit dieser ein paar Rechnungen durchführen. Leider habe ich schon beim Einlesen Probleme.

Die Tabelle sieht so aus:

Datum A B C D E F
2012-07-05 12:00:01 -0003 (-1) 0001 (-1) -0001 (-1)
2012-07-05 12:10:32 01305 (05) 02415 (03) -0001 (-1)
....
(um die 5000 Zeilen)

Mein Code


dd = fopen('test.txt');
temp=textscan(dd, '%s %d64 %s %d64 %*s %*d64 %*s', 'delimiter', ' ', 'Headerlines', 1);
%nur 1, 2, 3 und 4. Zeile einlesen

Matlab gibt mir beim Aufruf von tempf folgendes aus:
{5760x1 cell} [5760x1 int64] {5760x1 cell} [5760x1 int64]

aber auf die einzelnen Zellen kann ich nicht zugreifenn, bzw ich sehe nicht deren Inhalt.

Ich habe auch schon
>> vec = textscan(dd, '%*s %d64 %*s %d64 %*s %*d64 %*s',2,'endofline',';');
probiert (war hier im Forum in ähnlicher Form).
Aber auch hier kann ich nicht auf die Elemente einzeln zugreifen.

Ich wäre Euch dankbar, wenn Ihr mir helfen könntet

Viele Grüße

Subotai
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: 18.07.2013, 14:34     Titel:
  Antworten mit Zitat      
ich bin mir nicht sicher was du einlesen willst
Code:
dd = fopen('test.txt');
temp=textscan(dd, '%s %s %d64 %s %*d64 %*s %*d64 %*s ' , 'delimiter', ' ', 'Headerlines',1);
 

du sagst ihm am anfang ist nur ein string aber da sind ja 2 darum kein plan. sag nochmal genau was du haben willst
Private Nachricht senden Benutzer-Profile anzeigen
 
Subotai
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 38
Anmeldedatum: 18.07.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.07.2013, 14:38     Titel:
  Antworten mit Zitat      
Danke für die Antwort,

also ich will die Tabelle test.txt (von dieser habe ich den Header und 2 Zeilen als Beispiel abgebildet) einlesen um dann z.B. den Median von Spalte B für jede Stunde auszurechnen.

Nur ich bekomme diese Tabelle nicht korrekt auf.

Viele Grüße
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: 18.07.2013, 14:43     Titel:
  Antworten mit Zitat      
also willst du alles einlesen ? weil oben skippst du elemente.
und (-1) ist ein string. den muss man zb erst umwandeln damit man damit rechnen kann. das ist recht aufwendig. wenn du alles einlesen willst dann must du einfach die * aus meinem beispiel wegmachen
Private Nachricht senden Benutzer-Profile anzeigen
 
Subotai
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 38
Anmeldedatum: 18.07.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.07.2013, 14:50     Titel:
  Antworten mit Zitat      
Naja nicht direkt alles, der Median geht zb über 240 Zeilten der Spalte B, wobei die Auswahl nicht über ein fixes Intervall gehn darf sondern über die Spalte Date gesteuert wird (hier eine Stunde). Da ich mehre Files nacheinander einlese habe ich die unwichtigen Spalten ausgeklammert.

Das Problem ist, wen ich temp aufrufe, werden nicht die Werte angezeigt sonder nur
{5760x1 cell} [5760x1 int64] {5760x1 cell} [5760x1 int64] {5760x1 cell} {5760x1 cell}

und damit kann ich ja nicht weiterrechnen. Oder sehe ich das hier falsch?
Zumindest gelingt es mir nicht hier über die Spalte B den Median laufen zu lassen bzw. den Wert zu plotten

Viele Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 18.07.2013, 14:52     Titel:
  Antworten mit Zitat      
Ich bin zu 80%+ mit dem Import Wizard erfolgreich. Hier in R2013a:


    subotai_data.txt auf dem Pfad ablegen
    Im Current Folder - rechte Maustaste - Import Data...
    Alle Defaults übernehmen - Import Selection - Generate Script


Damit erhalte ich einen Code der die Testdaten importiert. Eventuelle Formatänderungen kann ich schnell durchführen.
[/code]
Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 18.07.2013, 14:56     Titel:
  Antworten mit Zitat      
Zitat:
Zumindest gelingt es mir nicht hier über die Spalte B den Median laufen zu lassen bzw. den Wert zu plotten

nunja wenn 5760 werte vorliegen ist die cell natürlich auch so groß und warum kannst du damit nicht rechnen. anscheinend machst du dann was bei der weiterverarbeitung falsch. aber da du dazu weder code noch fehlermeldung gepostest hast könnte man nur raten woran es liegt.
Private Nachricht senden Benutzer-Profile anzeigen
 
Subotai
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 38
Anmeldedatum: 18.07.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.07.2013, 14:57     Titel:
  Antworten mit Zitat      
DankeschönSmile Und den generierten Code kann ich ja dann so modifizieren, dass ich zB mehrere Scripts automtatisch einlese?
Muss ich probieren wenn ich endlich die neue Version bekomme.

Nochmals vielen Dank für Deine Hilfe.
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.