2016-06-02 6 views
0

In meiner Datei data.txt habe ich eine Zeichenfolge abcdefgh. Jetzt möchte ich nur 1 Zeichen ohne gelesene ganze Zeichenfolge nehmen. Wie kann ich dies in MATLAB tun?Wie liest man ein einzelnes Zeichen in einer Datei mit MATLAB?

Zum Beispiel möchte ich das erste Zeichen nehmen, verwende ich c = fscanf(data.txt, '%c'); und c = textscan(data.txt, '%c'); aber es lies ganze Zeile in data.txt. Ich weiß, dass c(1) meine Antwort ist, aber ich will das nicht tun.

Antwort

0

Sie können die Anzahl der eingelesenen Zeichen mit dem dritten input auf fscanf oder textscan begrenzen.

fid = fopen('data.txt', 'r'); 

c = fscanf(fid, '%c', 1); 
c = textscan(fid, '%c', 1); 

Sie könnten auch einfach eine untergeordnete Funktion wie fread dies zu tun.

+0

Ja, es funktioniert für das erste Zeichen, aber das Problem ist passiert, wenn ich Zeichen I th oder letzte Zeichen gelesen habe. Ich benutze c = fscanf (fid, '% c', len); ('len' ist die Länge der Zeichenkette in der Datei data.txt), sie liest die ganze Zeichenkette. –

+0

@ VõHoàngTrọng Probleme wie diese können mit Direktzugriffsströmen behandelt werden. Ich fand zufällig die Funktion ['fseek'] (http://se.mathworks.com/help/matlab/ref/fseek.html) in Matlab. – patrik