スプレッドシートのインポート
Microsoft® Excel® ファイルなどのスプレッドシートには、多くの場合、数値データおよびテキスト データとともに変数名および行名が混在しています。スプレッドシート データを MATLAB® で表現する最も一般的な方法は table を使用することですが、スプレッドシート データを MATLAB で timetable、行列、または cell 配列として表現することもできます。
データは、プログラムにより、または対話的にスプレッドシートからインポートします。プログラムによりインポートする場合は、カスタマイズされたインポート関数を使用し、データがインポートされる方法をインポート オプションを使用してさらに制御します。インポート ツールを使用して対話的にインポートします。
データを table としてインポート
スプレッドシート データを table としてインポートできます。table は列方向の変数で構成され、それぞれに同じ型のデータが含まれます。table 内の変数は、データ型とサイズが異なってもかまいませんが、各変数の行数は同じでなければなりません。table の詳細については、table の作成とその table へのデータの代入を参照してください。
関数 readtable
を使用して、表形式のデータをスプレッドシートから table にインポートします。たとえば、サンプル ファイル patients.xls
から table を作成します。table の最初の 5 行と 5 列を表示します。
T = readtable("patients.xls");
T(1:5,1:5)
ans = 5×5 table LastName Gender Age Location Height ____________ __________ ___ _____________________________ ______ {'Smith' } {'Male' } 38 {'County General Hospital' } 71 {'Johnson' } {'Male' } 43 {'VA Hospital' } 69 {'Williams'} {'Female'} 38 {'St. Mary's Medical Center'} 64 {'Jones' } {'Female'} 40 {'VA Hospital' } 67 {'Brown' } {'Female'} 49 {'County General Hospital' } 64
データを timetable としてインポート
スプレッドシートの行が時間に関連付けられている場合、データを timetable としてインポートできます。table と同様に、timetable は行数が同じである限り、データ型とサイズの異なる表形式データ変数を格納できます。また、timetable には、1 つ以上の timetable でタイムスタンプ付きデータの整列、結合、および計算を実行するための時間に特化した関数が用意されています。timetable の詳細については、timetable の作成を参照してください。
関数 readtimetable
を使用して、表形式のデータをスプレッドシートから timetable にインポートします。たとえば、サンプル ファイル sample.xls
から timetable を作成します。timetable の最初の 5 行と 5 列を表示します。
TT = readtimetable("sample.xls");
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.xls
から行列を作成します。
M = readmatrix("basic_matrix.xls")
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.xls
の不均一なデータから cell 配列を作成します。
C = readcell("basic_cell.xls")
C = 3×3 cell array {[ 1]} {[ 2]} {[ 3]} {'hello' } {'world'} {[ NaN]} {[10-Oct-2018 10:27:56]} {[ 1]} {1x1 missing}
さらに制御するためのインポート オプションを指定したデータのインポート
スプレッドシート データをインポートするときに、インポート処理をさらに制御する必要がある場合があります。インポート処理をカスタマイズするために、インポート オプション オブジェクトを作成できます。このオブジェクトには、インポートの要件に基づいて調整できるプロパティがあります。たとえば、変数のデータ型を変更したり、変数のサブセットのみをインポートしたりできます。インポート オプションの詳細については、detectImportOptions
を参照してください。
対話的なデータ インポート
インポート ツールを使用すると、table や他のデータ型にデータを対話的にインポートできます。
インポート ツールを開くには、[ホーム] タブの [変数] セクションで、[データのインポート] をクリックします。次に、インポートするファイルを選択します。または、現在のフォルダー ブラウザーでファイル名を右クリックして、[データのインポート] を選択します。インポート ツール ウィンドウを使用して、インポート オプションを設定してから、[選択のインポート] をクリックして MATLAB にデータをインポートします。詳細については、インポート ツールを使用したスプレッドシート データの読み取りを参照してください。
たとえば、サンプル スプレッドシート ファイル patients.xls
から table を作成します。インポート ツールでファイルを開き、データの範囲や出力タイプなどのオプションを選択します。次に、[選択のインポート] をクリックして、データを table として MATLAB ワークスペースにインポートします。