2016-05-02 6 views
1

file.txtにいくつかの文字列があり、そのすべてをセル配列に追加したいと思います。MATLABで長さを決定せずに1次元セル配列に文字列を追加

しかし、問題は、ファイル内の文字列の数が不明であり、カウントしたくないということです。私は1つの文字列を(上から下に)ファイルに読み込むたびにそれをセル配列に追加します。

例:

**file.txt** 

ABC 
DEFG 
HI 
JKLMNO 

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

私はMATLAB R2014b を使用しています。これどうやってするの?

+0

これはさまざまな方法で実行できます。そのときには1行、文字列は1行ずつ読むことができます。これを行う組み込み関数を使用することもできます。ファイル内の内容に応じて、さまざまなオプションがあります。まず[textscan](http://se.mathworks.com/help/matlab/ref/textscan.html)のドキュメントを読んでください。 – patrik

+0

@patrik私はtextscanを使用しますが、新しい文字列を読むたびに、最後のセル文字列を削除します。その結果、私は1×1のセルサイズを持っています。これは真実ではありません。 –

答えて

0

あなたは、文字列のセル配列にあなたの全体のファイルをロードするためにtextscanを使用することができます

+1

MATLAB関数のデモまたはそれ以上の説明により、答えが向上します。 – ryanyuyu

3

MATLABでfgets機能(Documentation)を使用して、テキストファイルから行を取得することができます。 1つの書式指定子(%s)しか持たないため、セル配列にセルのすべての行のセル配列が含まれているため、結果は1 x 1セル配列になります。

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

C = data{1}; 

%// 'ABC' 
%// 'DEFG' 
%// 'HI' 
%// 'JKLMNO' 
関連する問題