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

Text Datei einlesen mit unbekannter Spaltenzahl / Variablen

 

rennur
Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 13.02.12
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 08.08.2018, 13:20     Titel: Text Datei einlesen mit unbekannter Spaltenzahl / Variablen
  Antworten mit Zitat      
Hallo zusammen,

mit Erschrecken stelle ich gerade meine inzwischen stark gewordene Unfähigkeit fest, in Matlab Probleme zu lösen. Okay, es könnte auch daran liegen, dass ich seit 4 Jahren nichts mehr gemacht habe.

Seis drum, aktuell versuche ich, aus einer mit Labview erstellten Text Datei (mit Headerinformationen) sowohl die Variablennamen als auch die zugehörigen Werte auszulesen. Beides folgt keinem festen Chema. die Variablen sind veränderlich, die Anzahl an Variablen ebenfalls.

Seit 1,5 Tagen versuche ich auf einen grünen Zwei zu kommen, leider bisher ohne Erfolg. Das Importtool (Import Data) von Matlab findet ohne Probleme die Variablennamen und ordnet die Daten entsprechend zu.

Es muss doch nun auch möglich sein, dies als Code zu programmieren und automatisiert über mehrere Dateien laufen zu lassen?

Meine ersten Gehversuche mit fopen, load, fgetl, import ... usw. scheiterten kläglich. Nicht mal die Anzahl an Spalten bekomme ich aktuell? Die Daten sind per Tabstopp getrennt. Das sollte doch nicht so schwer sein?

Besten Dank vorab.

Beispiel_Import_Data.PNG
 Beschreibung:

Download
 Dateiname:  Beispiel_Import_Data.PNG
 Dateigröße:  78.32 KB
 Heruntergeladen:  294 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: 08.08.2018, 14:27     Titel:
  Antworten mit Zitat      
Hallo,

du kannst das mit readtable importieren. Um mit den Dezimalkommas umzugehen, bräuchtest du mindestens R2016b und dann die Befehle detectImportOptions und evtl. setvartype / setvaropts.

Wenn es dir nur um die Anzahl der Spalten geht: mit fgetl eine Zeile einlesen, in Double umwandeln und die Anzahl der Trennzeichen zählen (Tab ist 9, glaube ich).

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
rennur
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 13.02.12
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 08.08.2018, 14:39     Titel:
  Antworten mit Zitat      
Super!
'readtable(filename);' hat sogar schon ohne weitere Schalter und Optionen gereicht, um eine Tabelle zu erzeugen, in der Variablen und Werte enthalten sind.
Diese muss jetzt im Bereich der Werte sicherlich nur noch "nachbearbeitet" werden.

Habe übrigens Matlab R2018a

Ich danke dir Harald =)
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: 08.08.2018, 14:51     Titel:
  Antworten mit Zitat      
Hallo,

du solltest dir auf jeden Fall eine Variable zurückgeben lassen, sonst wird die Rückgabe in ans geschrieben.

Code:


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
rennur
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 13.02.12
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 10.08.2018, 09:29     Titel:
  Antworten mit Zitat      
Hallo Harald,

ich tue mich gerade noch ein wenig schwer, aus der Table die Daten für mich greifbar zu machen.

Der Befehl DetectImportOptions ist meiner Beobachtung nach auch schon im Befehl Readtable enthalten. Dieser ändert zumindest nichts an den Formatierungen beim einlesen.

Problematisch ist, dass die Reihenfolge und Anzahl der Variablen nicht festgelegt ist. Das kann von Datei zu Datei variieren. Das heißt, dass ich hier auch nichts vorgeben kann - leider.

Meine Idee: Anhand von (Teil-)Strings die Spalten aus der Tabelle entnehmen, in einem Vektor ablegen und entsprechend formatieren.

Die Teilstrings habe ich versucht mit find und strcmp zu finden. Das klappt bislang noch nicht.

Hast du da noch mal einen wertvollen Tipp für mich?
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.