Main Content

キーと値のデータを含む MAT ファイルの読み取りと解析

次の例では、mapreduce の出力である MAT ファイル内のキーと値のペアのデータに対するデータ ストアを作成する方法を示します。次に、データ ストア内のすべてのデータを読み取って並べ替える方法を示します。この例では、MAT ファイル内のデータがメモリ内に収まることを前提としています。

サンプル ファイル mapredout.mat から、関数 datastore を使用してデータ ストアを作成します。サンプル ファイルには、一意なキー (航空会社のコードを表す) と対応する値 (その会社が運営するフライトの数を表す) が含まれます。

ds = datastore('mapredout.mat');

datastoreKeyValueDatastore を返します。関数 datastore は、作成するデータ ストアの適切なタイプを自動的に判断します。

関数 preview を使用してデータをプレビューします。この関数は、データ ストアの状態には影響しません。

preview(ds)
ans=1×2 table
     Key        Value  
    ______    _________

    {'AA'}    {[14930]}

関数 readall を使用して、ds 内のすべてのデータを読み取ります。関数 readall は、KeyValue の 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 変数 KeyValue は 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)

参考

| | |

関連するトピック