Main Content

テキスト ファイルのインポート

MATLAB®.csv ファイルや .txt ファイルなど、区切り文字付きテキスト ファイルおよび書式設定付きテキスト ファイルから、数値および非数値データを読み書きできます。テキスト ファイルには、多くの場合数値データおよびテキスト データとともに変数名および行名が混在しています。MATLAB では、このデータを table、timetable、行列、cell 配列、または string 配列として表現できます。

データは、プログラムにより、または対話的にテキスト ファイルからインポートします。プログラムによりインポートする場合は、カスタマイズされたインポート関数を使用し、データがインポートされる方法をインポート オプションを使用してさらに制御します。対話的にインポートする場合は、インポート ツールとそのユーザー インターフェイスを使用します。

データを table としてインポート

テキスト ファイルに表形式データが含まれる場合、データを table としてインポートできます。table は同じ型のデータの行を含む列方向の変数で構成されます。table 内の各変数は、データ型とサイズが異なってもかまいませんが、各変数の行数は同じでなければなりません。table の詳細については、table の作成とその table へのデータの代入を参照してください。

ファイル名を指定して関数 readtable を使用し、テキスト ファイルから table に表形式データをインポートします。たとえば、サンプル ファイル airlinesmall.csv から table を作成します。

T = readtable('airlinesmall.csv');

table の最初の 5 行と 5 列を表示します。

T(1:5,1:5)
ans =

  5×5 table

    Year    Month    DayofMonth    DayOfWeek    DepTime 
    ____    _____    __________    _________    ________

    1987     10          21            3        {'642' }
    1987     10          26            1        {'1021'}
    1987     10          23            5        {'2055'}
    1987     10          23            5        {'1332'}
    1987     10          22            4        {'629' }

データを timetable としてインポート

テキスト ファイルに表形式データが含まれ、それぞれの行が時間に関連付けられている場合、データを timetable としてインポートできます。table と同様に、timetable は行数が同じである限り、データ型とサイズの異なる表形式データ変数を格納できます。また、timetable には、1 つ以上の timetable でタイムスタンプ付きデータの整列、結合、および計算を実行するための時間に特化した関数が用意されています。timetable の詳細については、timetable の作成を参照してください。

関数 readtimetable を使用し、テキスト ファイルから timetable に表形式データをインポートします。たとえば、サンプル ファイル outages.csv から timetable を作成します。

TT = readtimetable('outages.csv');

timetable の最初の 5 行と 5 列を表示します。

TT(1:5,1:5)
ans =

  5×5 timetable

       OutageTime          Region         Loss     Customers     RestorationTime            Cause       
    ________________    _____________    ______    __________    ________________    ___________________

    2002-02-01 12:18    {'SouthWest'}    458.98    1.8202e+06    2002-02-07 16:50    {'winter storm'   }
    2003-01-23 00:49    {'SouthEast'}    530.14    2.1204e+05                 NaT    {'winter storm'   }
    2003-02-07 21:15    {'SouthEast'}     289.4    1.4294e+05    2003-02-17 08:14    {'winter storm'   }
    2004-04-06 05:44    {'West'     }    434.81    3.4037e+05    2004-04-06 06:10    {'equipment fault'}
    2002-03-16 06:18    {'MidWest'  }    186.44    2.1275e+05    2002-03-18 23:23    {'severe storm'   }

データを行列としてインポート

テキスト ファイルに (すべて同じ型の) 均一なデータが含まれる場合、データを行列としてインポートできます。データを行列としてインポートすると、最小限に書式設定された配列を操作できます。

readmatrix を使用してテキスト ファイルから行列に表形式データをインポートします。たとえば、サンプル ファイル basic_matrix.txt からデータを行列にインポートします。

M = readmatrix('basic_matrix.txt')
M = 5×4

     6     8     3     1
     5     4     7     3
     1     6     7    10
     4     2     8     2
     2     7     5     9

データを cell 配列としてインポート

cell 配列は cell と呼ばれるインデックス付きのデータ コンテナーをもつデータ型です。各 cell には任意のデータ型を格納できます。一般的に cell 配列には、テキスト、テキストと数値の組み合わせ、またはさまざまなサイズの数値配列などのリストが含まれています。

readcell を使用して (各列の型が異なる) 不均一なデータをテキスト ファイルから cell 配列にインポートできます。たとえば、basic_cell.txt の内容を表示し、混合データを cell 配列にインポートします。

type basic_cell.txt
1,2,3
hello,world,NaN
10-Oct-2018 10:27:56,1,
C = readcell('basic_cell.txt')
C=3×3 cell array
    {[                   1]}    {[    2]}    {[        3]}
    {'hello'               }    {'world'}    {[      NaN]}
    {[10-Oct-2018 10:27:56]}    {[    1]}    {1x1 missing}
あるいは、関数 textscan と低水準 I/O ワークフローを使用して、書式設定済みデータをテキスト ファイルから cell 配列にインポートできます。低水準 I/O ワークフローではデータのインポートを最大限に制御できます。このレベルの制御は、ほとんどのワークフローでは必要ありません。低水準 I/O によるテキスト データのインポートの詳細については、低水準 I/O によるテキスト データ ファイルのインポートを参照してください。

データを string 配列としてインポート

テキスト ファイルにプレーン テキスト行が含まれる場合、MATLAB でプレーン テキストを string 配列として表現できます。string 配列は、テキストを格納し、テキストをデータとして処理するための一連の関数を提供します。たとえば、string 配列は、他のタイプの配列と同じようにインデックス付け、形状変更および連結を行えます。

readlines を使用してテキスト ファイルのプレーン テキスト行を string 配列にインポートします。たとえば、サンプル テキスト ファイル badpoem.txt から string 配列を作成します。このテキスト ファイルには 4 行のプレーン テキストが含まれているため、関数は 4 行 1 列の string 配列を作成します。

lines = readlines("badpoem.txt")
lines = 4x1 string
    "Oranges and lemons,"
    "Pineapples and tea."
    "Orangutans and monkeys,"
    "Dragonflys or fleas."

さらに制御するためのインポート オプションを指定したデータのインポート

表形式データをインポートするときに、インポート処理をさらに制御する必要がある場合があります。インポート処理をカスタマイズするために、インポート オプション オブジェクトを作成できます。このオブジェクトには、インポートの要件に基づいて調整できるプロパティがあります。たとえば、変数のデータ型を変更したり、変数のサブセットのみをインポートしたりできます。インポート オプションの詳細については、detectImportOptions を参照してください。

対話的なデータ インポート

ユーザー インターフェイスを使用する場合は、インポート ツールを使うと、table や他のデータ型にデータを対話的にインポートできます。

インポート ツールを開くには、[ホーム] タブの [変数] セクションで、[データのインポート] をクリックします。または、現在のフォルダー ブラウザーでファイル名を右クリックして、[データのインポート] を選択します。次に、インポートするファイルを選択します。インポート ツール ウィンドウを使用して、インポート オプションを設定してから、[選択のインポート] をクリックして MATLAB にデータをインポートします。詳細については、インポート ツールを使用したテキスト ファイル データの読み取りを参照してください。

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

参考

| | | | | | | |

関連するトピック