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

Textscan, mal wieder

 

JN78
Forum-Fortgeschrittener

Forum-Fortgeschrittener



Beiträge: 69
Anmeldedatum: 18.05.09
Wohnort: Stuhr
Version: R2010b, R2011a
     Beitrag Verfasst am: 12.07.2011, 10:52     Titel: Textscan, mal wieder
  Antworten mit Zitat      
Hallo Zusammen,

wahrscheinlich kann hier keiner mehr die Probleme mit Textscan lesen, aber ich komme einfach damit nicht klar. Bevor einer fragt, ja die doc zu textscan hab ich gelesen, aber ich verstehs nicht.

Ich hab mehrer *.txt Files, die ersten zwei Reihen sind Kopfzeilen, die erste Spalte dann Datum und Uhrzeit, der Rest sind meine numerischen Werte.

Ich habs wie folgt versucht einzulesen:


Code:

fid=fopen('test_Modified.txt');
data=textscan(fid,['%s' repmat('%d', 1, 26)],'headerlines', 2, delimiter',';');
dates = strrep(data{1}, '"', '')
fclose(fid);
 


Die Probleme sind dabei folgende:
1. nur das erste Datum und Uhrzeit wird erkannt
2. die Daten werden nicht so eingelesen wie Sie im File stehen, einige Werte werden einfach ausgelassen
3. "repmat('%d', 1, 26)" hier hab ich einfach mal eine 26 reingeschrieben, testweise - wie kann ich das dynamisch halten, es sind ja mehr als 26 Spalten, ich hab nur keine Ahnung wie ich deren Anzahl bestimmen kann.
Ich hab mal eine Testdatei mit hochgelanden.

Vielen Dank schonmal, falls mir hier jemand weiterhelfen kann.

Danke und Gruß Jan

test_Modified.txt
 Beschreibung:

Download
 Dateiname:  test_Modified.txt
 Dateigröße:  52.43 KB
 Heruntergeladen:  483 mal

_________________

Ich bin ein Schwamm, denn ich sauge Ideen auf und mache sie nutzbar. Die meisten meiner Ideen gehören ursprünglich anderen Leute, die sich halt nicht mehr die Mühe gemacht haben, sie weiterzuentwickeln. Thomas Alva Edison (1847 - 1931)
Private Nachricht senden Benutzer-Profile anzeigen


Titus
Forum-Meister

Forum-Meister


Beiträge: 871
Anmeldedatum: 19.07.07
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 12.07.2011, 15:03     Titel:
  Antworten mit Zitat      
Hallo,

zwei Punkte: wie kommst Du auf die 26 in der Formatzeile? Und es muss %f statt %d heißen (Fließkommazahlen). Dann funktioniert es:
Code:
fid=fopen('test_Modified.txt');
% find out the number of columns:
header = fgetl(fid);
nCol = sum(header==';');
% now read data:
data=textscan(fid,['%s' repmat(' %f', 1, nCol-1)],'headerlines', 1, 'delimiter',';');
dates = data{1}
fclose(fid);
 


Ciao,
Titus
Private Nachricht senden Benutzer-Profile anzeigen
 
JN78
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener



Beiträge: 69
Anmeldedatum: 18.05.09
Wohnort: Stuhr
Version: R2010b, R2011a
     Beitrag Verfasst am: 12.07.2011, 16:30     Titel: Re: Textscan, mal wieder
  Antworten mit Zitat      
Hallo Titus,

danke für deine Antwort.
Die 26 hab ich nur mal so zu Testzwecken reingeschrieben, da ich keine Idee hatte, wie ich die Spaltenanzahl bestimme - wollte erstmal nur sehen, ob das einlesen prinzipiell klappt.

JN78 hat Folgendes geschrieben:
...
3. "repmat('%d', 1, 26)" hier hab ich einfach mal eine 26 reingeschrieben, testweise - wie kann ich das dynamisch halten, es sind ja mehr als 26 Spalten, ich hab nur keine Ahnung wie ich deren Anzahl bestimmen kann.
...


Gruß und Danke Jan
_________________

Ich bin ein Schwamm, denn ich sauge Ideen auf und mache sie nutzbar. Die meisten meiner Ideen gehören ursprünglich anderen Leute, die sich halt nicht mehr die Mühe gemacht haben, sie weiterzuentwickeln. Thomas Alva Edison (1847 - 1931)
Private Nachricht senden Benutzer-Profile anzeigen
 
JN78
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener



Beiträge: 69
Anmeldedatum: 18.05.09
Wohnort: Stuhr
Version: R2010b, R2011a
     Beitrag Verfasst am: 13.07.2011, 08:37     Titel:
  Antworten mit Zitat      
Eine Frage zu obiger Lösung habe ich noch.
Derzeit wird die erste Zeile der Datei in eine Zelle eingelesen, also komplett alles in textdata{1,1}, alle anderen Elemente von Cell sind hingegen leer.
Für die zweite Zeile hingegen wird alles richtig aufgeteilt. (siehe angehängte Grafik)

Wie kann ich das abändern?

Gruß und Danke

Jan

goMatlab.jpg
 Beschreibung:

Download
 Dateiname:  goMatlab.jpg
 Dateigröße:  72.05 KB
 Heruntergeladen:  536 mal

_________________

Ich bin ein Schwamm, denn ich sauge Ideen auf und mache sie nutzbar. Die meisten meiner Ideen gehören ursprünglich anderen Leute, die sich halt nicht mehr die Mühe gemacht haben, sie weiterzuentwickeln. Thomas Alva Edison (1847 - 1931)
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 13.07.2011, 10:56     Titel:
  Antworten mit Zitat      
Hallo

wie hängt es jetzt mit obigen Code zusammen? Denn dort würden ja die ersten Zwei Zeilen überlesen?
Private Nachricht senden Benutzer-Profile anzeigen
 
JN78
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener



Beiträge: 69
Anmeldedatum: 18.05.09
Wohnort: Stuhr
Version: R2010b, R2011a
     Beitrag Verfasst am: 13.07.2011, 15:48     Titel:
  Antworten mit Zitat      
Ups ein Fehler meinerseits.
Da hab ich aus versehen mit einer alten zuvor eingelesenen Variante gearbeitet.


Sorry nochmals...

Gruß Jan
_________________

Ich bin ein Schwamm, denn ich sauge Ideen auf und mache sie nutzbar. Die meisten meiner Ideen gehören ursprünglich anderen Leute, die sich halt nicht mehr die Mühe gemacht haben, sie weiterzuentwickeln. Thomas Alva Edison (1847 - 1931)
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.