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

kuriose ergebnisse beim auslesen einer txt-datei

 

rumpfutsch
Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 03.06.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 08.11.2011, 10:49     Titel: kuriose ergebnisse beim auslesen einer txt-datei
  Antworten mit Zitat      
Hallo zusammen,

ich bin grad dabei ein Ausleseskript für eine txt-datei zu schreiben.
Das Format ist ungefähr so aufgebaut:

Code:

    1    1     12.64848191     50.43823784    -17.50000000    999.99987793
    2    1     12.43909430     50.22453428    -17.50000000     -0.00013878
    3    1     12.23178464     50.00881462    -17.50000000     -0.00013394
usw.
 

Ab und zu wird ein Block mit Werten durch eine Textzeile unterbrochen.

Jetzt hab ich schonmal Folgendes zusammengeschrieben:

Code:

infile = fopen('ergebnisse.txt', 'r');
char={zeros(pla*fla,1)};
k=1;
while not (feof(infile))
    zeile=fgetl(infile);
    if isempty(zeile)==1;
        break
    elseif isempty(strfind(zeile,'npr'))==1
        char{k,1}=textscan(zeile, '%u %u %11f %11f %11f %11f ');
        k=k+1;
    end
end

 

wobei pla und fla bekannte Zahlen sind.

Und jetzt kommt's, womit ich eigentlich Probleme habe:
wenn ich die einzelnen char-Felder aufrufe, kommt für z.B. char{1,1} das Ergebnis
Code:
[1;1000]   1   12,6484819100000   50,4382378400000   -17,5000000000000   0


Meine Fragen wären nun:
- wo kommt die [1,1000] her?
- wie wird aus 999.99987793 eine 0?

Hat jemand eine Idee?
Über Hilfe würde ich mich wirklich sehr, sehr freuen!
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 08.11.2011, 11:17     Titel: Re: kuriose ergebnisse beim auslesen einer txt-datei
  Antworten mit Zitat      
Hallo rumpfutsch,

Das Problem liegt beim Auslesen von "-17.50000000" mit "%11f". Dies gibt nämlich -17.5 zurück und läßt die letzte 0 ungelesen zurück. Diese wird dann in die letzte Spalte eingelesen und die 999.99987793 wird an die erste Spalte als 1000 angehängt.

Dies lief bei mir:
Code:
textscan(zeile, '%u %u %f %f %f %f ');

Du solltest auf keinen fall den Befehl "char" mit einer Variablen überschreiben.
Bei ISEMPTY benötigt man keinen Vergleich mit "==1" am Schluß.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Anne33333

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.11.2011, 11:29     Titel:
  Antworten mit Zitat      
Hi,
also wiso das so ist weis ich nicht.
also ich schreib mir immer erst ne Excel datei raus mit zB:

[xlswrite ('Dateiname',Name,1,'A1:A5678')
]

und schreib aus excel ne txt datei raus.
Da hab ich dann keine Fehler

Grüßle Anna333
 
rumpfutsch
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 03.06.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 10.11.2011, 10:07     Titel:
  Antworten mit Zitat      
Vielen Dank für die schnelle Hilfe und die Erklärung!
Ich habe die Code-Zeile jetzt umgeändert in
Code:
data{k,1}=textscan(zeile, '%u %u %f %f %f %f ');

Funktioniert wunderbar!
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.