ich bin langsam am verzweifeln, suche schon den halben Tag wie man eine Ascii Datei in Matlab einlesen kann. Bis jetzt hat noch nichts funktioniert, was im Internet empfohlen wurde.
Die ersten paar Zeilen beinhalten Text und danach kommt das eigentlich interessante. Mir geht es nur um die Zahlen, den Text brauche ich nicht. Die Zahlen haben ein Komma als Dezimaltrennzeichen und das Semikolon trennt die Zahlen.
Wie bekomme ich diese Werte mit Matlab in eine Matrix?
Habe zuerst versucht mit "importdata" die Datei einzulesen, aber Matlab stürzt dem Versuch immer wieder ab. Mit der Funktion "textscan" bekomme ich keine Zahlen rein.
Code:
A = textscan(file, %d, 'delimiter', ';', 'headerlines', 10);
wenn du so eine Datei hier posten würdest, könnte dir mal besser helfen
Ansonsten muss du den weg über TEXTSCAN gehen:
so vielleicht:
Code:
fid = fopen('pfad zu der textdatei.txt','rt');
%
% zuerst als String einlesen
A = textscan(fid, '%s', 'delimiter', ';', 'headerlines', 10, 'CollectOutput', true);
fclose(fid);
A = [A{:}];
% Kommas durch Punkt ersetzen
A = regexprep(A, ',' , '.');
% zu Zahlenwerten konvertieren
A = str2double(A);
fid = fopen('pfad zu der textdatei.txt','rt');
%
% 9 oder 10 zeilen überspringen
A = textscan(fid, '%s', 0, 'delimiter', ';', 'headerlines', 9);
% Matrix als char einlesen
A = fread(fid,'*char')';
fclose(fid);
% Kommas durch Punkt ersetzen
A = regexprep(A, ',' , '.');
A = regexprep(A, ';' , ' ');
% zu Zahlenwerten konvertieren
A = str2num(A);
Vielen Dank für deine schnelle Antwort. Im Prinzip hat das auf Anhieb funktioniert, aber die Werte sind irgendwie durcheinander. Der erste Wert stimmt noch, danach aber nicht mehr. Es scheint als ob die Spalten und Zeilen vertauscht wurden. Eine transponierte Matrix führt jedoch zur falschen Dimensionierung, so dass die Werte der ersten Zeile passen, aber dann verschoben werden, weil die Zeilenlänge nicht mehr der ursprünglichen entspricht.
Zuletzt bearbeitet von denny am 07.03.2014, 12:44, insgesamt einmal bearbeitet
StudiMas
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 06.03.2014, 15:07
Titel:
Super, vielen Dank. Es funktioniert genauso, wie ich es mir vorgestellt habe.
Einstellungen und Berechtigungen
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
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.