ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

キーと値のデータを含む 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)

参考

| | |

関連するトピック