メインコンテンツ

インポート ツールを使用したテキスト ファイル データの読み取り

データを対話的に選択して、テキスト ファイルからデータをインポートします。また、インポート ツールのコード生成機能を使用して、複数のテキスト ファイルにこのインポート操作を繰り返すこともできます。

対話モードでのデータの選択

この例では、インポート ツールを使用して、列ヘッダーと数値データを含むテキスト ファイルからデータをインポートする方法を示します。例のファイル grades.txt には、次のデータが含まれています。

   John    Ann     Mark    Rob
   88.4    91.5    89.2    77.3
   83.2    88.0    67.8    91.0
   77.8    76.3    None    92.5
   92.1    96.4    81.2    84.6

ファイルを作成するには、任意のテキスト エディターを使用してデータをコピーし、貼り付けます。

[ホーム] タブの [変数] セクションで、[データのインポート] をクリックします。または、[ファイル] パネルでファイル名を右クリックして、[データのインポート] を選択します。インポート ツールが開きます。

The Import Tool displays the contents of the grades.txt data file as a table containing four columns and five rows with one missing value

インポート ツールでは grades.txt が固定幅ファイルであると認識されます。[インポートされた変数] セクションで、データのインポート方法を選択します。

インポートされる変数の型データのインポート方法
テーブル選択したデータをテーブルとしてインポートします。
timetable選択したデータを timetable としてインポートします。
列ベクトル選択したデータの各列を個別の m 行 1 列のベクトルとしてインポートします。
数値行列選択したデータを mn 列の数値配列としてインポートします。
string 配列選択したデータを、テキストを含む string 配列としてインポートします。
cell 配列選択したデータを、複数のデータ型 (数値データやテキストなど) を格納できる cell 配列としてインポートします。

[区切り文字オプション] で、数値の小数点の区切りを示す文字としてピリオドとコンマのどちらをインポート ツールで使用するかを指定することができます。

The delimiter options are treat multiple delimiters as one, a period decimal separator, or a comma decimal separator

変数名をダブルクリックして、名前を変更します。

The cursor is at the end of the variable name Ann in the header of table column B

[選択] セクションの [変数名行] ボックスを使用して、インポート ツールで変数名に使用するテキスト ファイル内の行を選択することもできます。

インポート ツールでは、インポートできないセルが強調表示されます。インポートできないセルとは、その列に指定した形式でインポートできないデータをもつセルです。この例では、ファイルにはインポートできない cell が 1 つ含まれています。強調表示に使用される色はそれぞれ、データを数値配列に格納するために提示されたルールに対応します。置き換える値を NaN から別の値に変更するなど、ルールの追加、削除、並べ替えまたは編集ができます。

The Edit Rule dialog specifies that the Import Tool replaces the unimportable cells highlighted in orange with NaN

すべてのルールはインポートされたデータにのみ適用され、ファイルのデータは変更されません。行列または数値列ベクトルへとインポートし、その範囲に数値以外のデータが含まれる場合は常に、ルールを指定しなければなりません。

データのインポート方法を確認するには、個々のセルの上にカーソルを合わせます。

[選択のインポート] ボタン をクリックすると、インポート ツールによってワークスペースに変数が作成されます。

複数のテキスト ファイルからのデータのインポート

複数のファイルに同じインポート操作を実行するには、インポート ツールのコード生成機能を使用します。ファイルを一度インポートしてから、インポート ツールでコードを生成する場合は、このコードを使用して操作の繰り返しを簡単にすることができます。インポート ツールで、ファイルをインポートするための編集や実行が可能なプログラム スクリプトを生成したり、各ファイルの呼び出し関数を生成したりできます。

現在のフォルダーに一連のテキスト ファイルがあるとします。ファイルには myfile01.txt から myfile25.txt までの名前が付けられ、データのインポートをファイルごとに、2 番目の行から開始するものとします。

ファイルすべてをインポートするためのコードを生成するには、インポート ツールでいずれかのファイルを開きます。次に、[選択のインポート]、[関数の生成] をクリックします。インポート ツールによって次の抜粋と類似したコードが生成され、エディターで表示されます。

function textdata = importfile(filename,dataLines)
%IMPORTFILE Import data from a text file
...

関数を保存します。次に、別のプログラム ファイルまたはコマンド ラインで for ループを作成して、各テキスト ファイルのデータを myData という cell 配列にインポートします。

numFiles = 25;
myData = cell(1,numFiles);

for fileNum = 1:numFiles
    fileName = sprintf("myfile%02d.txt",fileNum);
    myData{fileNum} = importfile(fileName);
end

myData の各セルには、対応するテキスト ファイルからのデータが配列形式で含まれます。たとえば、myData{1} には最初のファイル myfile01.txt のデータが含まれます。

参考

| | | | | |

トピック