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

Unterschiedlich lange .dat-Dateien einlesen als Matrix

 

Linda
Forum-Anfänger

Forum-Anfänger


Beiträge: 40
Anmeldedatum: 26.06.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.02.2018, 10:30     Titel: Unterschiedlich lange .dat-Dateien einlesen als Matrix
  Antworten mit Zitat      
Ich habe .dat-Dateien, die alle unterschiedlich lang und breit sind. Ich kenne die Größe auch nicht, ohne in jedes File reinzugehen. Es sind keine Header vorhanden, keine Buchstaben, nur numerische Werte.

Ich möchte nun in einer Schleife die Dateien nacheinander(!) öffnen und als Matrix (double) speichern..und dann werte ich aus, etc. Hierbei aber nicht das Problem.

Habe zuvor importdata verwendet, funktioniert auch, dauert aber viiiiel zu lang bei der Menge an Files.

Dann habe ich folgendes getestet: Hier aber das Problem, ich muss die Länge der Datei angeben, die ich jedoch nicht weiss und die variiert. Wenn ich size weglasse, dann schreibt es mir alle Werte in eine Zeile.

Code:
for i=1:length(Files)
fid=fopen(File{i})
data= fscanf (fid,'%f', [?,Inf])


Nun wollte ich textscan verwenden, hierbei taucht jedoch ebenfalls zum einen das Problem auf, dass alle Werte in eine Zeile gespeichert, oder ich '%f' für jede Spalte angeben muss, also 200 Spalten zum Beispiel.

Gibt es hierfür keine elegante und schnelle Lösung? Es sind wirklich nur Zahlen, die einzige Schwierigkeiten das jede Datei unterschiedlich groß ist.
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.432
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 14.02.2018, 20:06     Titel:
  Antworten mit Zitat      
Hallo,

dlmread könnte helfen.

Wiederholte %f können mit repmat generiert werden:
Code:
fmt = repmat('%f', 1, 200)


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.