matlab textdatei einlesen

OP #3919015
Lesenswert?

Hallo,

möchte eine Textdatei mit Matlab einlesen.
Mache das mit dem folgendem Befehl:
fid=fopen('logfile.txt','r');
C=textscan(fid,'%s %s %s');
 und an der Stelle habe ich ein Verständnisproblem und zwar
%s heißt ja es wird ein String ausgelesen.

Der Logfile hat diese Form:
2560788 usecs: file start
7658115 usecs: file closed

C=textscan(fid,'%s %s %s');zeigt mir folgendes:
C{1}{1} =

2560788

C{1}{2} =
7658115

Was sind das für komische Zeichen    und woher kommen sie?
%s heißt ja es wird ein String ausgelesen. In meinem Logfile sind die 
Zahlen zu sehen. Warum kann Matlab sie nicht nicht als Integer 
auffassen?
C=textscan(fid,'%u16 %s %s') oder C=textscan(fid,'%d16 %s %s') zeigt, 
dass der Inhalt der Datei leer ist.
Gast #3919525
Lesenswert?

Hallo,

Matlab bietet viele Möglichkeiten Dateien einzulesen.
Angefangen beim >dlmread<, >csvread< bis hin zum fopen und fscanf....

Textscan importiert übrigens in Cells.

Kannst Du vielleicht mal Dein logfile.txt posten, damit man das Problem 
sehen kann.

Fopen und fscanf ist übrigens das universellste, weil es eine sehr 
Änhlichkeit mit C bietet.
#3919838
Lesenswert?

Fsd Fdsfds schrieb:
> Woher komt  ?

Du hast das Glück eine Textdatei mit UTF8-BOM am Anfang zu haben:

$ curl http://www.mikrocontroller.net/attachment/240010/logfile.txt | 
xxd | head -n 2
0000000: efbb bf32 3536 3037 3838 2075 7365 6373  ...2560788 usecs
0000010: 3a20 7374 6172 740d 0a37 3635 3831 3135  : start..7658115

das "efbbbf" zu begin ist die BOM. In Windows-1251 ist das dann eben 
OP #3920108
Lesenswert?

Habe die Datei mit Editor erstellt.
Mit OpenOffice erstellen und als .txt speichern hat geholfen.

Mit C=textscan(fid,'%s %s %s');
Erstellt matlab eine Exceltabelle, wo in der Tat alle Zahlen und Wörter 
sauber abzulesen sind.

Mit C=textscan(fid,'%u18 %s %s');
werden alle Zahlen, die in einer Spalte eingetragen wurden auf einmal in 
eine Zeile hintereinander geschrieben
So:
[2560788;7658115;15231059;20332392;27901525;32999353].

Wieso? Ich möchte später ein Plot erstellen, die Zahlenwerte brauche ich 
für einen Graph. Erkennt Matlab sie nicht als Zahlenwerte an, wenn sie 
mit %s bezeichnet werden?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren