キーと値のデータを含む MAT ファイルの読み取りと解析
次の例では、mapreduce
の出力である MAT ファイル内のキーと値のペアのデータに対するデータストアを作成する方法を示します。次に、データストア内のすべてのデータを読み取って並べ替える方法を示します。この例では、MAT ファイル内のデータがメモリ内に収まることを前提としています。
サンプル ファイル mapredout.mat
から、関数 datastore
を使用してデータストアを作成します。サンプル ファイルには、一意なキー (航空会社のコードを表す) と対応する値 (その会社が運営するフライトの数を表す) が含まれます。
ds = datastore('mapredout.mat');
datastore
は KeyValueDatastore
を返します。関数 datastore
は、作成するデータストアの適切なタイプを自動的に判断します。
関数 preview
を使用してデータをプレビューします。この関数は、データストアの状態には影響しません。
preview(ds)
ans=1×2 table
Key Value
______ _________
{'AA'} {[14930]}
関数 readall
を使用して、ds
内のすべてのデータを読み取ります。関数 readall
は、Key
と Value
の 2 つの列をもつ table を返します。
T = readall(ds)
T=29×2 table
Key Value
__________ _________
{'AA' } {[14930]}
{'AS' } {[ 2910]}
{'CO' } {[ 8138]}
{'DL' } {[16578]}
{'EA' } {[ 920]}
{'HP' } {[ 3660]}
{'ML (1)'} {[ 69]}
{'NW' } {[10349]}
{'PA (1)'} {[ 318]}
{'PI' } {[ 871]}
{'PS' } {[ 83]}
{'TW' } {[ 3805]}
{'UA' } {[13286]}
{'US' } {[13997]}
{'WN' } {[15931]}
{'AQ' } {[ 154]}
⋮
T
には、データストアからのすべての航空会社とフライトのデータが、データが読み取られたのと同じ順序で含まれています。table 変数 Key
と Value
は cell 配列です。
Value
を数値配列に変換します。
T.Value = cell2mat(T.Value)
T=29×2 table
Key Value
__________ _____
{'AA' } 14930
{'AS' } 2910
{'CO' } 8138
{'DL' } 16578
{'EA' } 920
{'HP' } 3660
{'ML (1)'} 69
{'NW' } 10349
{'PA (1)'} 318
{'PI' } 871
{'PS' } 83
{'TW' } 3805
{'UA' } 13286
{'US' } 13997
{'WN' } 15931
{'AQ' } 154
⋮
テーブル変数に新しい名前を割り当てます。
T.Properties.VariableNames = {'Airline','NumFlights'};
T
のデータをフライト数で並べ替えます。
T = sortrows(T,'NumFlights','descend')
T=29×2 table
Airline NumFlights
_______ __________
{'DL'} 16578
{'WN'} 15931
{'AA'} 14930
{'US'} 13997
{'UA'} 13286
{'NW'} 10349
{'CO'} 8138
{'MQ'} 3962
{'TW'} 3805
{'HP'} 3660
{'OO'} 3090
{'AS'} 2910
{'XE'} 2357
{'EV'} 1699
{'OH'} 1457
{'FL'} 1263
⋮
並べ替えられたテーブルの概要を表示します。
summary(T)
Variables: Airline: 29x1 cell array of character vectors NumFlights: 29x1 double Values: Min 69 Median 1457 Max 16578
データを再度読み取れるように、データストアをリセットします。
reset(ds)
参考
datastore
| KeyValueDatastore
| tall
| mapreduce