2016-05-02 8 views
1

Ich habe einige Zeichenfolgen in file.txt und ich möchte alle zu einem Zell-Array hinzufügen.Hinzufügen einer Zeichenfolge zu 1-D-Zellen-Array ohne Bestimmung der Länge in MATLAB

Aber das Problem ist eine Reihe von Strings in Datei sind unbekannt und ich will nicht zählen. Ich möchte jedes Mal, wenn ich 1 String in der Datei (von oben nach unten) lese, es zum Zellen-Array hinzufügen.

Beispiel:

**file.txt** 

ABC 
DEFG 
HI 
JKLMNO 

--> cellarray(1) = 'ABC', cellarray(2) = 'DEFG', cellarray(3) = 'HI', cellarray(4) = 'JKLMNO' 

Ich bin mit MATLAB R2014b. Wie kann ich das machen?

+0

Sie können dies auf viele Arten tun. Sie können jeweils eine Zeile und die Zeichenfolgen nacheinander lesen. Sie können auch eingebaute Funktionen verwenden, die dies für Sie tun. Abhängig davon, was Sie in der Datei haben, gibt es verschiedene Optionen. Sie sollten mit dem Lesen der Dokumentation in [textscan] (http://se.mathworks.com/help/matlab/ref/textscan.html) beginnen. – patrik

+0

@patrik Ich benutze textscan, aber jedes Mal, wenn sie eine neue Zeichenfolge lesen, löschen sie die letzte Zellenzeichenfolge. Also das Ergebnis ist, ich habe eine Zellengröße 1 x 1, was nicht wahr ist. –

Antwort

0

Sie können eine Zeile aus Textdatei erhalten die fgets Funktion in MATLAB (Documentation)

+1

Eine kleine Demo oder mehr Erklärung dieser MATLAB-Funktion würde Ihre Antwort verbessern. – ryanyuyu

3

Sie textscan verwenden können Sie Ihre gesamte Datei in eine Zelle Array von Strings zu laden. Das Ergebnis wird ein 1 x 1 Zellenfeld sein, weil Sie nur einen Formatbezeichner haben (%s), aber dieses Zellenfeld enthält ein weiteres Zellenarray aller Zeilen in der Datei.

fid = fopen('file.txt', 'rt'); 
data = textscan(fid, '%s', 'delimiter', '\r\n'); 

C = data{1}; 

%// 'ABC' 
%// 'DEFG' 
%// 'HI' 
%// 'JKLMNO' 
Verwandte Themen