テキスト ファイルのインポート
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 にデータをインポートします。詳細については、インポート ツールを使用したテキスト ファイル データの読み取りを参照してください。
参考
インポート ツール | readtable
| table
| readtimetable
| readmatrix
| readcell
| readlines
| textscan
| detectImportOptions