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 liest Zahlen nicht vollständig

 

NPSteve

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.03.2012, 14:34     Titel: textscan liest Zahlen nicht vollständig
  Antworten mit Zitat      
Hallo leute

Die textscan funktion liest bei mir die zahlen nicht vollständig ein. Ich habe verinfacht gesehen diesen code (file öffnen/schliessen habe ich hier ausgelassen):

Code:

A = textscan(fid1, '%f');    %daten aus file 1 einlesen
dlmwrite(fid2, A);              %daten in file 2 speichern


Die werte aus dem ursprünglichen file (fid1) sehen so aus:
12.3456
123.456

Diese werden dann so wiedergegeben (in fid2):
12.345
123.45

Es werden von textscan also nur die ersten 5 ziffern gelesen. Kann mir jemand sagen woran das liegen könnte?

Vielen Dank
Steve


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 26.03.2012, 15:08     Titel:
  Antworten mit Zitat      
Hallo da muss wohl bei TEXTSCAN DELIMITER nutzen

Code:
A = textscan(fid1, '%f','delimiter','\n');    %daten aus file 1 einlesen
dlmwrite(fid2, A);              %daten in file 2 speichern
Private Nachricht senden Benutzer-Profile anzeigen
 
Sirius3
Forum-Guru

Forum-Guru


Beiträge: 441
Anmeldedatum: 11.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.03.2012, 18:15     Titel:
  Antworten mit Zitat      
Hallo NPSteve,
es werden nicht zuwenig Ziffern gelesen sondern zu wenig geschrieben.
In
Code:
dlmwrite(fid2, A,'precision',6);
kann mit precision die Anzahl Ziffern bei der Ausgabe angegeben werden.
Grüße
Sirius
Private Nachricht senden Benutzer-Profile anzeigen
 
NPSteve

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.03.2012, 21:06     Titel:
  Antworten mit Zitat      
Danke für die antworten. Leider haben beide nicht funktioniert. Ich denke es liegt tatsächlich am lesen der daten und nicht am schreiben. Wenn ich das array in matlab im variable editor oder so anschaue sind die zahlen nämlich auch nicht vollständig. Ich gehe jetzt trotzdem ein bisschen mehr ins detail.

Lesen will ich eine datei mit zeilen der form:

Code:

     4   15221.000000000    P P      -9.4030   26.0280   16.1080      
     5   15221.000000000    P P       9.7960  -15.0920  -22.4980      
     6   15221.000000000    P P     -19.0230    5.8370   12.5600      
 


Dies mache ich mit:

Code:
A = textscan(ftemp, '%f %f %s %s %f %f %f');


Das liest mir aber jeweils nur 5 digits ein und nicht alle. Folgender code wäre meiner meinung nach korrekt, aber irgendwie erzeugt er kein richtiges array (abrufen der daten mit zb. A{1,6}(100) ergibt error):

Code:
A = textscan(ftemp, '%1f %5.9f %1s %1s %3.4f %3.4f %3.4f');



Danke nochmals
Steve
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 27.03.2012, 09:35     Titel:
  Antworten mit Zitat      
Also ich verstehe wirklich nicht wo das Problem liegt,
probiere doch mit kleinem Beispiel , wie hier:
Code:
str=sprintf('4   15221.000000000    P P      -9.4030   26.0280   16.1080\n5   15221.000000000    P P       9.7960  -15.0920  -22.4980\n6   15221.000000000    P P     -19.0230    5.8370   12.5600')
A = textscan(str, '%f %f %*s %*s %f %f %f')
A=[A{:}]
dlmwrite('hierfilename.txt', A)
 
Private Nachricht senden Benutzer-Profile anzeigen
 
NPSteve

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.03.2012, 19:20     Titel:
  Antworten mit Zitat      
Ich versteh auch nicht was war. Jetzt fuktioniert es (ausser wenn ich %5.4f oder so eingebe). Aber ich schwöre, dass es vorher fehlerhaft war. vielleicht war irgendwas durcheinander und der neustart hats von selber arrangiert. Egal, danke trotzdem für eure hilfe.

Steve
 
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.