Main Content

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

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

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

この例では、インポート ツールを使用して、列ヘッダーと数値データを含むテキスト ファイルからデータをインポートする方法を示します。例のファイル 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            92.5
   92.1    96.4    81.2    84.6

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

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

grades.txt is a sample file used to portray the Import Tool.

インポート ツールでは grades.txt が固定幅ファイルであると認識されます。[インポートデータ] セクションで、データのインポート方法を選択します。次の表に、選択したオプションによってデータがどのようにインポートされるかを示します。

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

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

The Delimiter Options are located within the Delimiters section of the Import tab.

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

The variable name is located as a column header.

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

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

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

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

For example, information on how a value was replaced might be shown

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

インポート ツール操作の詳細については、このビデオをご覧ください。

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

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

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

  1. ファイルの 1 つをインポート ツールで開きます。

  2. [選択のインポート] をクリックし、[関数の生成] を選択します。インポート ツールによって次の抜粋と類似したコードが生成され、エディターで表示されます。

    function data = importfile(filename,startRow,endRow)
    %IMPORTFILE Import numeric data from a text file as a matrix.
    ...
  3. 関数を保存します。

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

    numFiles = 25;
    startRow = 2;
    endRow = inf;
    myData = cell(1,numFiles);
    
    for fileNum = 1:numFiles
        fileName = sprintf('myfile%02d.txt',fileNum);
        myData{fileNum} = importfile(fileName,startRow,endRow);
    end

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

参考

| | | | |

関連するトピック