Main Content

cell2table

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

説明

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

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

T = cell2table(C,Name,Value) は、1 つ以上の Name,Value のペアの引数で指定された追加のオプションを使用して、cell 配列 C から 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 = 1x5 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 の内容にサイズと型の互換性がある場合、対応する table 変数はそれらの内容を垂直連結した配列になります。

  • ある列で cell の内容のサイズと型が異なる場合、対応する table 変数は cell 配列になります。

    • ある列で cell の内容がすべて文字ベクトルである場合、対応する table 変数は文字ベクトルの cell 配列になります。

名前と値の引数

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

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

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

行名。"RowNames" と、string 配列または文字ベクトルの cell 配列 (要素は空ではなく一意) で構成されるコンマ区切りのペアとして指定します。名前の数は行数 size(C,1) と等しくなければなりません。

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

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

変数名。"VariableNames" と、string 配列または文字ベクトルの cell 配列 (要素は空ではなく一意) で構成されるコンマ区切りのペアとして指定します。名前の数は変数の数 size(C,2) と等しくなければなりません。

変数名には、スペースや非 ASCII 文字を含め、どんな Unicode 文字でも使用することができます。

"R2021a 以降"

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

次元名には、スペース、非 ASCII 文字を含む任意の Unicode 文字を使用できます。

R2021a より前は、出力の DimensionNames プロパティの設定によってのみ、次元名を指定できます。

出力引数

すべて折りたたむ

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

拡張機能

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

バージョン履歴

R2013b で導入

すべて展開する