Main Content

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

ワークスペース変数からデータセット配列を作成

メモ

dataset データ型は推奨されません。異種混合データを処理するには、代わりに MATLAB® table データ型を使用します。詳細は、MATLAB table ドキュメンテーションを参照してください。

数値配列からデータセット配列を作成

この例では、MATLAB® ワークスペースにある数値配列からデータセット配列を作成する方法を示します。

標本データを読み込みます。

load fisheriris

ワークスペースには 2 つの変数が読み込まれます。1 つは 150 行 4 列の数値配列 meas、もう 1 つは種のラベルが格納されている 150 行 1 列の cell 配列 species です。

データセット配列を作成します。

mat2dataset を使用して数値配列 meas をデータセット配列に変換します。

ds = mat2dataset(meas);
ds(1:10,:)
ans = 
    meas1    meas2    meas3    meas4
    5.1      3.5      1.4      0.2  
    4.9        3      1.4      0.2  
    4.7      3.2      1.3      0.2  
    4.6      3.1      1.5      0.2  
      5      3.6      1.4      0.2  
    5.4      3.9      1.7      0.4  
    4.6      3.4      1.4      0.3  
      5      3.4      1.5      0.2  
    4.4      2.9      1.4      0.2  
    4.9      3.1      1.5      0.1  

この配列 meas には 4 つの列があるため、データセット配列 ds には 4 つの変数があります。既定の変数名は配列名 (meas) に列番号が付加されたものです。

独自の変数名または観測名を指定するには、名前と値のペアの引数 VarNamesObsNames をそれぞれ使用します。

dataset を使用して数値配列をデータセット配列に変換する場合、既定で、変換後のデータセット配列には、列ごとに個別の変数ではなく、配列となっている 1 つの変数が含まれます。

データセット配列を確認します。

データセット配列 ds のサイズを返します。

size(ds)
ans = 1×2

   150     4

データセット配列 ds のサイズは数値配列 meas と同じです。変数名と観測名は、データセット配列のサイズに反映されません。

データセット配列のメタデータを調査します。

データセット配列 ds のメタデータ プロパティを返します。

ds.Properties
ans = struct with fields:
       Description: ''
    VarDescription: {}
             Units: {}
          DimNames: {'Observations'  'Variables'}
          UserData: []
          ObsNames: {}
          VarNames: {'meas1'  'meas2'  'meas3'  'meas4'}

プロパティには個別にアクセスすることもできます。たとえば、変数名は ds.Properties.VarNames を使用して取得できます。

データセット配列変数のデータにアクセスします。

変数名にドット インデックスを使用すると、データセット配列のデータにアクセスできます。たとえば、最初の変数 meas1 の最小値を求めます。

min(ds.meas1)
ans = 4.3000

変数名を変更します。

ds の 4 つの変数は、それぞれ、萼片の長さ、萼片の幅、花弁の長さ、花弁の幅の測定値です。変数名を変更してわかりやすくします。

ds.Properties.VarNames = {'SLength','SWidth','PLength','PWidth'};

説明を追加します。

データセット配列の説明を追加できます。

ds.Properties.Description = 'Fisher iris data';
ds.Properties
ans = struct with fields:
       Description: 'Fisher iris data'
    VarDescription: {}
             Units: {}
          DimNames: {'Observations'  'Variables'}
          UserData: []
          ObsNames: {}
          VarNames: {'SLength'  'SWidth'  'PLength'  'PWidth'}

データセット配列のプロパティが更新され、新しい変数名と説明が設定されます。

データセット配列に 1 つの変数を追加します。

変数 species は種のラベルが格納されている cell 配列です。speciesSpecies というノミナル配列としてデータセット配列 ds に追加します。データセット配列の最初の 5 つの観測値を表示します。

ds.Species = nominal(species);
ds(1:5,:)
ans = 
    SLength    SWidth    PLength    PWidth    Species
    5.1        3.5       1.4        0.2       setosa 
    4.9          3       1.4        0.2       setosa 
    4.7        3.2       1.3        0.2       setosa 
    4.6        3.1       1.5        0.2       setosa 
      5        3.6       1.4        0.2       setosa 

データセット配列 ds には 5 番目の変数 Species があることがわかります。

種類の異なるワークスペース変数からデータセット配列を作成

この例では、MATLAB® ワークスペースにある異種混合の変数からデータセット配列を作成する方法を示します。

標本データを読み込みます。

load carsmall

データセット配列を作成します。

ワークスペース変数のサブセットからデータセット配列を作成します。

ds = dataset(Origin,Acceleration,Cylinders,MPG);
ds.Properties.VarNames(:)
ans = 4x1 cell
    {'Origin'      }
    {'Acceleration'}
    {'Cylinders'   }
    {'MPG'         }

データセット配列を作成する場合、変数名を入力する必要はありません。dataset では各ワークスペース変数の名前が自動的に使用されます。

データセット配列 ds 内には種類の異なるデータ型の変数が集められています。Origin は文字配列、それ以外の変数は数値型です。

データセット配列を確認します。

データセット配列の最初の 5 つの観測値を表示します。

ds(1:5,:)
ans = 
    Origin     Acceleration    Cylinders    MPG
    USA          12            8            18 
    USA        11.5            8            15 
    USA          11            8            18 
    USA          12            8            16 
    USA        10.5            8            17 

データセット配列に関数を適用します。

ds の各変数のデータ型を返すには、datasetfun を使用します。

varclass = datasetfun(@class,ds,'UniformOutput',false);
varclass(:)
ans = 4x1 cell
    {'char'  }
    {'double'}
    {'double'}
    {'double'}

summary(ds) を使用すると、変数に関する追加情報を取得できます。

データセット配列を変更します。

Cylinders は数値配列で、気筒の数として 468 の各値が格納されています。Cylinders を、foursixeight というレベルをもつノミナル配列に変換します。

最初の 15 台の自動車について生産国と気筒の数を表示します。

ds.Cylinders = nominal(ds.Cylinders,{'four','six','eight'});
ds(1:15,{'Origin','Cylinders'})
ans = 
    Origin     Cylinders
    USA        eight    
    USA        eight    
    USA        eight    
    USA        eight    
    USA        eight    
    USA        eight    
    USA        eight    
    USA        eight    
    USA        eight    
    USA        eight    
    France     four     
    USA        eight    
    USA        eight    
    USA        eight    
    USA        eight    

変数 Cylinders は新しいデータ型になります。

参考

| | |

関連する例

詳細