メインコンテンツ

cell2table

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

説明

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

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

T = cell2table(C,Name,Value) は、1 つ以上の Name,Value のペアの引数で指定された追加のオプションを使用して、cell 配列から table を作成します。

たとえば、テーブルに含める行名または変数名を指定できます。

すべて折りたたむ

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 配列 C を table に変換し、変数名を指定します。

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"      

変数 T.AgeT.Calories は数値ですが、変数 T.FavoriteFoodT.NutritionGrade は string 配列です。

cell 配列をテーブルに変換してから、cell 配列の最初の行をテーブルの変数名として含めます。

最初の行に列見出しを識別する 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,:);
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

table T には変数名 C1,...,C5 が含まれています。

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

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

T.Properties.VariableNames = LastName
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 は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。

例: "RowNames",["row1","row2","row3"] は、行名 row1row2 および row3 を table T に使用します。

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

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

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

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

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

R2021a 以降

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

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

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

出力引数

すべて折りたたむ

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

拡張機能

すべて展開する

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

バージョン履歴

R2013b で導入

すべて展開する