Hallo,
erstmal vielen dank für Antwort,
hab klein teil der tabelle kopiert,
mit den ersten 17 zeile ist richtig und der anzahl der Spalte ist nicht fest sondern variirt.
mein Problem dass meine Programm zur zeit Liest nur eine zeile dann mit der nächten überschreibt das akzuelle!
hatte davor versucht mit , dlmread, da hat alles gelesen wenn alles intenger ist, aber spalte 2 und 3 hab ein Datum dann eine Uhrzeit, damit hat problem.
deswegen wollte mit textscan versuchen
Das ist mir auch unklar, wie soll das denn bei dem Code gehen, hast du eine Schleife drum? Mir ist einfach nicht ersichtlich, was du genau machst
In deinem Code überspringst du 17 Zeilen und danach liest nur eine Zeile ein. Vielleicht liegt hier dein Missverständnis, dass die Zeile überschreiben wird, weil du schlicht die 18 Zeile einliest?
zizou
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 03.03.2014, 13:28
Titel:
Hallo, es liegt an mein Deutsch , Sorry ,
habe es hin bekommen aber es dauert ewig wo davor mit
warum liest du immer nur eine Zeile ein? TEXTSCAN kann ja blockweise oder kompletten Text formatiert einlesen.
Leider ist das mir immer noch nicht klar, wie dein File aufgebaut ist. Wäre gut wenn du dein File hier posten würdest.
Hast du schon versucht das so einzulesen?
Code:
data = textscan(fid,sprintf('%s', repmat('%s',1,14)),'delimiter',{';'},'headerlines',17);
okay jetzt verstehe ich das schon etwas besser.
Original-File hat mehr als 22 Spalten. Bei TEXTSCAN kann man auch die eingeben welche Spalten man ignorieren möchte, das muss man aber in Formatierung-String machen
Also du willst nur die ersten 14 Spalten einlesen?
dann musst du das so machen, probiere das mal aus:
Code:
% %*[^\n] das sagt dass du den Rest verwerfen möchtest:
data= textscan(fid, [repmat('%s',1,14), '%*[^\n]'], 'delimiter', ';', 'headerlines', 17,'CollectOutput',true)
du kannst gleich formatiert einlesen, Datum als String, Zahlen als Double oder Integer.
In Spalte 4(Capture), hast du Kommazahlen ist da ein Punkt oder ein Komma? Das sollte ein Punkt sein, ansonsten muss du erst Komma durch Punkt ersetzen, bevor du als Zahlenvektor das einlesen kannst
Vielen Dank für deine Antwort!!!!!
ich bekomme leider diese meldung
"Error using textscan CollectOutput must be integer-valued."
und wo du das genau bespricht ich würde wie du gesagt hast bis 14 aber ohne die 1 und die 4 Spalte !!!
Vielen Dank das das hat aber jetzt funktioniert !!!!
aber ein verstehe ich nicht warum wird erst alles in der erste celle geschribe erst wenn man data{1,1} sind die daten drin?
ist es möglich der zwischen schritt zu sprengen bzw sofot auf mein tabelle alles sehen zu können !!
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
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.