MATLAB でテキスト・ファイルを読み込む

MATLABでテキスト・ファイルを読み込むときのメモです。

とりあえず、やり方は以下の二通りあることを知っていれば良さそうです。

一行ずつ読み込む

Rubyに慣れていると、こちらの方が馴染があります。 一行ごとに処理をするのはこちらが良いでしょう。

fopen/fcloseとfgetlを使います:

fileName = "ningen_shikkaku.txt";

fileID = fopen(fileName);

contents = "";
while ~feof(fileID)
    contents = contents + fgetl(fileID) + newline;
end
fclose(fileID);

上の例では読み込んだ後に”newline”で改行を追加しています。 newlineは sprintf(“\n”)と同じです。

なお

hoge = hoge + "\n";

では改行してくれず、

hoge = hoge + sprintf("\n");

とする必要があります。

一括で読み込む

“Text Analytics Toolbox”をインストールすると、テキスト解析に便利なコマンドが使えます。

extractFileText というコマンドで一括で読み込みできます。

fileName = "ningen_shikkaku.txt";

str = extractFileText(fileName, 'Encoding', 'Shift_JIS');

こちらのやり方では2行で書けます。fopen/fcloseを気にしなくて良いのは楽ですね。

一括で読み込むか、一行ごとに読み込むかは、処理内容によって使い分ければ良いでしょう。