Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   
Bücher:

Studierende:
Praktikum - Vergleich von MATLAB und Scilab
Branche: mehrere
IAV GmbH - Berlin, Chemnitz

Praktikum - Optische Verbrennungsdiagnostik von Zündsystemen mit MATLAB
Branche: mehrere
IAV GmbH - Ingenieurgesellschaft Auto und Verkehr - Berlin

Praktikant (w/m) Toolentwicklung Matlab
Branche: Beratung, Expertise, Fahrzeugtechnik, Fahrzeugteile, Technische Dienstleistungen
MBtech Group GmbH & Co. KGaA - Fellbach

Abschlussarbeit / Praktikum: Entwicklung Matlab (m/w)
Branche: Informationstechnologie, Elektrotechnik, Elektronik
GIGATRONIK Technologies GmbH - Ulm

Werkstudent (m/w) - Entwicklung von Elektrolyseanlagen
Branche: mehrere
IAV GmbH - Ingenieurgesellschaft Auto und Verkehr - Gifhorn

weitere Angebote

Partner:


Vermarktungspartner


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, 11: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: 18.520
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2014a
     Beitrag Verfasst am: 14.02.2018, 21: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
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de goPCB.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2018 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.