3

各行に 1 つの単語 (文字列) を持つファイルがあります。このファイルをオクターブ単位で「マトリックス」に読み込むにはどうすればよいですか。a[1] = "word1" となります。

返信ありがとうございました。

4

2 に答える 2

3

セル配列を作成します。

input_file = fopen('vocab.txt');
number_of_lines = fskipl(input_file, Inf);
frewind(input_file);
cells = cell(number_of_lines, 1);
for i = 1:number_of_lines
    cells{i} = fscanf(input_file, '%s', 1);
end
于 2012-06-17T19:17:54.400 に答える
3

関数を使用するだけtextread (filepath, format)です:

column1 = textread('/path/to/file', '%s');    # Where '%s' indicates how to read the values of your file: one string per index.

for i = 1:rows(column1)
    word = column1{ i };

    %do your thing...
end

column1セル配列です。その{}ため、アクセスに使用します。


: 各行にスペースで区切られた 2 つの単語が含まれている場合は、次のように呼び出します。

[column1, column2] = textread('/path/to/file', '%s %s');

Performance :textread()に基づくラッパーですfscanf。ファイル入力のパフォーマンスが本当に必要な場合はfscanf(...)、バッファー長を適切に使用および設定する方法を学習することをお勧めします。の使用方法については、Terence の回答を参照してくださいfscanf()
textread()私のラップトップで〜30秒で4列の100Kエントリ(2Mbファイル)を読み取ります。詳細な説明については、コメントを参照してください。

于 2015-11-25T16:24:37.170 に答える