メインコンテンツ

cell2table

cell 配列のテーブルへの変換

説明

T = cell2table(C) は、mn 列の cell 配列の内容を mn 列の table に変換します。入力 cell 配列の各列は、出力 table の変数に含まれるデータを提供します。

出力 table 内に変数名を作成するために、cell2table は入力配列名に列番号を追加します。入力配列に名前がない場合、cell2table"Var1",...,"VarN" の形式で変数名を作成します。ここで、N は cell 配列内の列数です。

T = cell2table(C,Name=Value) は、前述の構文の入力引数に加え、1 つ以上の名前と値の引数を使用してオプションを指定します。たとえば、VariableNames を変数名の string 配列に設定して変数名を指定できます。

すべて折りたたむ

string と数値データを含む cell 配列を作成します。(string の cell 配列は推奨されません。ただし、今回の場合、string と数値の両方が格納された cell 配列に string を含めることが適切です。この cell 配列はテキストのコンテナーではなく、異なるデータ型の値をグループ化したコンテナーです。)

C = { 5 "cereal"  110 "C+"; ...
     12 "pizza"   140 "B"; ...
     23 "salmon"  367 "A"; ...
      2 "cookies" 160 "D"}
C=4×4 cell array
    {[ 5]}    {["cereal" ]}    {[110]}    {["C+"]}
    {[12]}    {["pizza"  ]}    {[140]}    {["B" ]}
    {[23]}    {["salmon" ]}    {[367]}    {["A" ]}
    {[ 2]}    {["cookies"]}    {[160]}    {["D" ]}

cell 配列を table に変換し、変数名を指定します。変数 T.AgeT.Calories は数値配列ですが、変数 T.FavoriteFoodT.NutritionGrade は string 配列です。

T = cell2table(C,VariableNames=["Age" "FavoriteFood" "Calories" "NutritionGrade"])
T=4×4 table
    Age    FavoriteFood    Calories    NutritionGrade
    ___    ____________    ________    ______________

     5      "cereal"         110            "C+"     
    12      "pizza"          140            "B"      
    23      "salmon"         367            "A"      
     2      "cookies"        160            "D"      

cell 配列を table に変換します。cell 配列の最初の行を使用して table の変数名を指定します。

最初の行に列見出しを識別する string を含む cell 配列を作成します。(string の cell 配列は推奨されません。ただし、今回の場合、string、数値、logical 値が格納された cell 配列に string を含めることが適切です。この cell 配列はテキストのコンテナーではなく、異なるデータ型の値をグループ化したコンテナーです。)

Patients = {"LastName" "Age" "Height" "Weight" "Smoker"; ...
            "Chang"     38    71       176     true; ...
            "Brown"     43    69       163     false; ...
            "Ruiz"      38    64       131     false; ...
            "Lee"       38    64       131     false; ...
            "Smith"     40    67       133     false; ...
            "Garcia"    49    64       119     false}
Patients=7×5 cell array
    {["LastName"]}    {["Age"]}    {["Height"]}    {["Weight"]}    {["Smoker"]}
    {["Chang"   ]}    {[   38]}    {[      71]}    {[     176]}    {[       1]}
    {["Brown"   ]}    {[   43]}    {[      69]}    {[     163]}    {[       0]}
    {["Ruiz"    ]}    {[   38]}    {[      64]}    {[     131]}    {[       0]}
    {["Lee"     ]}    {[   38]}    {[      64]}    {[     131]}    {[       0]}
    {["Smith"   ]}    {[   40]}    {[      67]}    {[     133]}    {[       0]}
    {["Garcia"  ]}    {[   49]}    {[      64]}    {[     119]}    {[       0]}

cell 配列の最初の行から列見出しを除外します。残りの行にはデータが格納されています。

C = Patients(2:end,:)
C=6×5 cell array
    {["Chang" ]}    {[38]}    {[71]}    {[176]}    {[1]}
    {["Brown" ]}    {[43]}    {[69]}    {[163]}    {[0]}
    {["Ruiz"  ]}    {[38]}    {[64]}    {[131]}    {[0]}
    {["Lee"   ]}    {[38]}    {[64]}    {[131]}    {[0]}
    {["Smith" ]}    {[40]}    {[67]}    {[133]}    {[0]}
    {["Garcia"]}    {[49]}    {[64]}    {[119]}    {[0]}

C を table に変換します。table には Patients のデータが含まれています。ただし、変数名は C1,...,C5 です。

T = cell2table(C)
T=6×5 table
       C1       C2    C3    C4      C5  
    ________    __    __    ___    _____

    "Chang"     38    71    176    true 
    "Brown"     43    69    163    false
    "Ruiz"      38    64    131    false
    "Lee"       38    64    131    false
    "Smith"     40    67    133    false
    "Garcia"    49    64    119    false

cell 配列の最初の行にある名前を含むようにテーブル プロパティ T.Properties.VariableNames を設定して、変数名を変更します。最初の行から名前を抽出するには、中かっこを使用します。その後、これらの名前を連結して string 配列を作成します。この string 配列を T.Properties.VariableNames に割り当てます。

ColumnHeadings = [Patients{1,:}]
ColumnHeadings = 1×5 string
    "LastName"    "Age"    "Height"    "Weight"    "Smoker"

T.Properties.VariableNames = ColumnHeadings
T=6×5 table
    LastName    Age    Height    Weight    Smoker
    ________    ___    ______    ______    ______

    "Chang"     38       71       176      true  
    "Brown"     43       69       163      false 
    "Ruiz"      38       64       131      false 
    "Lee"       38       64       131      false 
    "Smith"     40       67       133      false 
    "Garcia"    49       64       119      false 

入力引数

すべて折りたたむ

入力 cell 配列。2 次元 cell 配列として指定します。C の各列は、table 変数のデータを提供します。

C の列内の cell の内容により、次のようになります。

  • 互換性のあるサイズとデータ型であり、各 cell に 1 行の配列が含まれている場合、対応する table 変数は "同種配列" となります。

    例:

    C = {[1 2] 3; [4 5] 6}
    T = cell2table(C)
    
    T =
      2×2 table
          C1      C2
        ______    __
        1    2    3 
        4    5    6 
    
  • 異なるサイズ、非互換のデータ型であるか、またはいずれかの cell にスカラーでなければならないオブジェクトまたは複数行の配列が含まれている場合、対応する table 変数は "cell 配列" となります。

    (たとえば、ディクショナリと関数ハンドルは常にスカラーです。スカラーでなければならないオブジェクトを同種配列に連結することはできません。したがって、cell2table でそれらを cell 配列に収集する必要があります。)

    例:

    C = {[1 2] 3; 4 5}
    T = cell2table(C)
    
    T =
      2×2 table
          C1       C2
        _______    __
        {[1 2]}    3 
        {[  4]}    5 
    

名前と値の引数

すべて折りたたむ

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

例: RowNames=["row1" "row2" "row3"] は、行名 row1row2row3 を 3 行の table に使用します。

行名。空でない一意の要素を含む string 配列または文字ベクトルの cell 配列として指定します。行名の数は、入力配列の行数と等しくなければなりません。

行名には、空白や非 ASCII 文字を含む任意の Unicode® 文字を使用できます。ただし、コロン文字 : は除きます。

先頭または末尾に空白文字を含む行名を指定すると、cell2table は行名からそれらを削除します。

変数名。空でない一意の要素を含む string 配列または文字ベクトルの cell 配列として指定します。変数名の数は、入力配列の列数と等しくなければなりません。

変数名には、スペースや非 ASCII 文字を含め、どんな Unicode 文字でも使用することができます。ただし、変数名は、table の次元名や予約名 PropertiesRowNamesVariableNames、またはコロン文字 : と同じであってはなりません。

次元名。2 要素 string 配列または要素が空ではない一意の文字ベクトルの 2 要素 cell 配列として指定します。

次元名には、スペース、非 ASCII 文字を含む任意の Unicode 文字を使用できます。ただし、次元名は、table 変数名や予約名 PropertiesRowNamesVariableNames、またはコロン文字 : と同じであってはなりません。

代わりに、すべてのリリースで、table の DimensionNames プロパティを設定することで次元名を指定できます。

出力引数

すべて折りたたむ

table として返される出力テーブル。テーブルには、説明、変数単位、変数名、行名などのメタデータを保存できます。詳細については、table のプロパティの節を参照してください。

拡張機能

すべて展開する

スレッドベースの環境
MATLAB® の backgroundPool を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool を使用してコードを高速化します。

バージョン履歴

R2013b で導入

すべて展開する