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

Probleme bei Import von txt. Dateien

 

bene-muell
Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 24.07.15
Wohnort: ---
Version: R2012b
     Beitrag Verfasst am: 03.04.2017, 12:24     Titel: Probleme bei Import von txt. Dateien
  Antworten mit Zitat      
Hallo zusammen,
ich bin gerade erst dem Forum beigetreten und entschuldige mich schon im Voraus, wenn ich irgendwelche Regeln, die ich nicht kenne, nicht befolgt habe und hoffe, dass ich hier an der richtigen Stelle schreibe.

Ich habe aus .txt Dateien und dem Befehl importdata mehrere identische, automatisch erstellte Tabellen mit Messwerten eingelesen. Bei den meisten gab es dabei auch keine Probleme.
Bei einer der Tabbellen sind jedoch nur die ersten 500 von fast 9000 Zeilen eingelesen worden.
Bei einer anderen Tabelle wurden aus den 9000 nach dem Import über 15 000 Zeilen: Dabei wurden zwischen die echten Werte jeweils Zellen mit NaN eingefügt.

Hat jemand eine Idee, woran das liegen könnte? Sind in den .txt files schon Fehler, obwohl die Messwerte automatisch aufgezeichnet wurden? Mit dem Import in Excel kam es mit den .txt-files zu keinen Problemen.

Besten Dank,
Benedikt
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 03.04.2017, 12:53     Titel:
  Antworten mit Zitat      
Hallo,

ohne Beispieldateien und den verwendeten Code lässt sich dazu wenig sagen.
Bei readtable hilft es z.B. oft, die Formatierung der Dateien über zusätzliche Parameter anzugeben.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
bene-muell
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 24.07.15
Wohnort: ---
Version: R2012b
     Beitrag Verfasst am: 03.04.2017, 13:56     Titel:
  Antworten mit Zitat      
die Dateien kann ich nicht veröffentlichen. Der Code lautet wie folgt und funktioniert bei den meisten anderen Datensätzen ja auch:
Code:
dates2010_importdata = importdata('Fernwärmenetz_h_2010_01_01_00.txt');


Mit dem Import tool funktioniert der Import ohne Probleme.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 03.04.2017, 14:40     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Der Code lautet wie folgt und funktioniert bei den meisten anderen Datensätzen ja auch:

Dann ist die Frage, was bei den wenigen anderen Datensätzen anders ist. Ohne die Datensätze zu sehen, kann ich dir diese Frage nicht beantworten.

Alternativen zu importdata können textscan oder wie im anderen Thread erwähnt dataset sein.

Zitat:
die Dateien kann ich nicht veröffentlichen.

Wenn du Dateien anderen Inhalts hast, die das Problem reproduzieren, tut's das auch.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
bene-muell
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 24.07.15
Wohnort: ---
Version: R2012b
     Beitrag Verfasst am: 03.04.2017, 16:00     Titel:
  Antworten mit Zitat      
Hallo Harald,
danke dir für die Hilfe. Ich werde es mal mit den anderen Befehlen versuchen. Habe in den letzten Tagen auch einiges in der Hilfe bzw. in verschiedenen Foren gelesen, verstehe aber den Unterschied zwischen den vielen verschiedenen Importfunktionen nicht. Ich habe es mit fopen, dlmread, textscan, load, textread, readtable und tdfread versucht, habe aber das Gefühl, dass ich die grundlegenden Unterschiede bzw. Absichten dieser Funktionen nicht recht verstehe. Es geht dabei ja nciht nur um den Dateityp, wenn ich das richtig verstanden habe. Falls du mir hier mit einer ERklärung weiterhelfen könntest oder einer Quelle, die das nochmal übersichtlich erklärt, wäre ich sehr dankbar. Mir geht es nicht nur darum eine Lösung zu finden, sonder ich würde auch gerne verstehen, warum die anderen Wege nicht möglich sind (auch wenn das f+ür den Anfang vll. zu viel erwartet ist)
Besten Dank,
Benedikt
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 03.04.2017, 17:16     Titel:
  Antworten mit Zitat      
Hallo,

der wesentliche Unterschied ist Flexibilität und Datentyp.

importdata: wenig Flexibilität
dlmread: erlaubt zusätzlich Auswahl eines Bereiches
textscan: volle Flexibilität

load würde ich nur für .mat-Dateien verwenden.

readtable und dataset geben die Daten in anderen Datentypen, also anders strukturiert zurück.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
bene-muell
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 24.07.15
Wohnort: ---
Version: R2012b
     Beitrag Verfasst am: 04.04.2017, 12:59     Titel:
  Antworten mit Zitat      
Vielen Dank erstmal.
Ich habe es jetzt mit textscan probiert:
Code:
T_2011 = textscan(fileID,'%s','Delimiter','\t')

allerdings schreibt er mir jetzt alle Werte der txt. Datei untereinander in eine einzige Spalte. Gibt es eine Möglichkeit ohne jede Spalte (insgesamt 60 in meinem Fall) einzeln über
Code:
oder analoge Befehle für die anderen Formate zu definieren, die Werte Spaltenweise einzulesen, so wie sie im txt. vorliegen? ich konnte dazu nichts passenden finden.
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: 04.04.2017, 13:19     Titel:
  Antworten mit Zitat      
Bei Code oder Daten, die man nicht im Internet sehen will, ist eigentlich der Technische Support von MathWorks ein relativ naheliegender Ansatz.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
bene-muell
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 24.07.15
Wohnort: ---
Version: R2012b
     Beitrag Verfasst am: 04.04.2017, 13:57     Titel:
  Antworten mit Zitat      
ein kleiner Ausschnitt aus den Daten sieht wie folgt aus. Wenn ich den nun wie oben beschrieben importiere, schreibt er mir alle in eine Spalte und nicht wie im txt durch Tabs getrennt in Spalten

import.txt
 Beschreibung:

Download
 Dateiname:  import.txt
 Dateigröße:  400 Bytes
 Heruntergeladen:  373 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 04.04.2017, 14:23     Titel:
  Antworten mit Zitat      
Hallo,

du kannst repmat verwenden, um ein Format zu wiederholen, beispielsweise
Code:
['%s' repmat('%f', 1, 60)]

für einen String gefolgt von 60 Doubles.

Ein erster Schritt sollte sein, die Dezimalkommas in Dezimalpunkte umzuwandeln. Möglichkeiten dazu findest du hier oder über Google.

Mit readtable geht es einfacher, da dort die Formate besser erkannt werden.

Grüße,
Harald
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 - 2024 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.