Main Content

cell

説明

"cell 配列" は cell と呼ばれるインデックス付きのデータ コンテナーをもつデータ型です。各 cell には任意のデータ型を格納できます。一般的に cell 配列には、テキスト、テキストと数値の組み合わせ、またはさまざまなサイズの数値配列などのリストが含まれています。かっこ () 内にインデックスを配置することで、セルのセットを参照します。中かっこ {} でインデックスを付けることにより、セルの内容にアクセスします。

作成

cell 配列に入れるデータがある場合は、cell 配列構成演算子 {} を使用して配列を作成します。

C = {1,2,3;
     'text',rand(5,10,2),{11; 22; 33}}
C=2×3 cell array
    {[   1]}    {[          2]}    {[     3]}
    {'text'}    {5x10x2 double}    {3x1 cell}

また、{} を使用して、空の 0 行 0 列の cell 配列を作成することもできます。

C = {}
C =

  0x0 empty cell array

指定したサイズの cell 配列を作成するには、以下に説明する関数 cell を使用します。

cell を使用して cell 配列を事前に割り当て、後でデータを割り当てることができます。また、cell は、Java®、.NET および Python® の特定の種類のデータ構造体を、同等の MATLAB® オブジェクトからなる cell 配列に変換します。

説明

C = cell(n) は、空行列からなる nn 列の cell 配列を返します。

C = cell(sz1,...,szN) は、空行列からなる sz1×...×szN の cell 配列を返します。ここで、sz1,...,szN は各次元のサイズを表します。たとえば、cell(2,3) は 2 行 3 列の cell 配列を返します。

C = cell(sz) は、空行列からなる cell 配列を返します。ここで、サイズ ベクトル szsize(C) を定義します。たとえば、cell([2 3]) は 2 行 3 列の cell 配列を返します。

D = cell(obj) は、Java 配列、.NET の System.String 配列または System.Object 配列、あるいは Python シーケンスを MATLAB の cell 配列に変換します。

入力引数

すべて展開する

正方 cell 配列のサイズ。整数値で指定します。

  • n0 の場合、C は空の cell 配列です。

  • n が負の場合、0 として扱われます。

データ型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

cell 配列の次元のサイズ。整数値として指定します。

  • いずれかの次元のサイズが 0 の場合、C は空の cell 配列です。

  • いずれかの次元のサイズが負の場合、そのサイズは 0 として扱われます。

  • 2 番目より後の次元のサイズが 1 の場合、それらの次元は cell で無視されます。たとえば、cell(3,1,1,1) は空行列からなる 3 行 1 列の cell 配列を作成します。

データ型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

サイズ。整数の行ベクトルとして指定します。sz の各要素は対応する次元のサイズを示します。

  • いずれかの次元のサイズが 0 の場合、C は空の cell 配列です。

  • いずれかの次元のサイズが負の場合、そのサイズは 0 として扱われます。

  • 2 番目より後の次元のサイズが 1 の場合、それらの次元は cell で無視されます。たとえば、cell([3 1 1 1]) は空行列からなる 3 行 1 列の cell 配列を作成します。

例: sz = [2 3 4] は、空行列からなる 2×3×4 の cell 配列を作成します。

データ型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

入力配列。次のものとして指定されます。

  • Java 配列またはオブジェクト

  • System.String または System.Object データ型の .NET 配列

  • Python シーケンス型

出力引数

すべて展開する

出力配列。cell 配列として返されます。各セルは空配列 (double データ型の 0 行 0 列の配列) を含んでいます。

変換後の配列。cell 配列として返されます。

各 cell には、対応する Java、.NET、または Python の型に最も近い型をもつ MATLAB オブジェクトが含まれます。詳細については、以下を参照してください。

すべて折りたたむ

関連するデータに異なるデータ型がある場合、これらを cell 配列内に共に保持できます。各 cell に 1 つのデータが含まれます。cell 配列の要素を参照するには、配列インデックス付けを使用します。かっこ () を使用して cell 配列へのインデックス付け、中かっこ {} を使用して cell の内容へのインデックス付けができます。

特定の日付に測定された複数の温度測定値を含む cell 配列を作成します。日付を文字ベクトル、温度を double の配列として指定します。これらのデータを cell 配列に格納するには、これらを中かっこで囲みます。

C = {'2017-08-16',[56 67 78]}
C=1×2 cell array
    {'2017-08-16'}    {[56 67 78]}

異なる日付の測定値を cell 配列に追加します。多くの cell を追加する 1 つの方法は、cell 配列を拡張することです。これは通常の配列を拡張できる方法と同じです。

C(2,:) = {'2017-08-17',[58 69 79]};
C(3,:) = {'2017-08-18',[60 68 81]}
C=3×2 cell array
    {'2017-08-16'}    {[56 67 78]}
    {'2017-08-17'}    {[58 69 79]}
    {'2017-08-18'}    {[60 68 81]}

C の最初の行にインデックスを付けます。かっこ () 使用してインデックスを付けた場合、結果はその cell 配列のサブセットである cell 配列です。

C(1,:)
ans=1×2 cell array
    {'2017-08-16'}    {[56 67 78]}

cell の内容にインデックスを付けます。中かっこ {} を使用してインデックスを付けた場合、結果は指定された cell に含まれるデータです。

C{1,2}
ans = 1×3

    56    67    78

空行列からなる 3 行 3 列の cell 配列を作成します。

C = cell(3)
C=3×3 cell array
    {0x0 double}    {0x0 double}    {0x0 double}
    {0x0 double}    {0x0 double}    {0x0 double}
    {0x0 double}    {0x0 double}    {0x0 double}

空行列からなる 3×4×2 の cell 配列を作成します。

C = cell(3,4,2);
size(C)
ans = 1×3

     3     4     2

空行列からなる、既存の配列と同じサイズの cell 配列を作成します。

A = [7 9; 2 1; 8 3];
sz = size(A);
C = cell(sz)
C=3×2 cell array
    {0x0 double}    {0x0 double}
    {0x0 double}    {0x0 double}
    {0x0 double}    {0x0 double}

上記の 2 行のコードを 1 行にまとめた一般的なパターンを次に示します。

C = cell(size(A));

ヒント

  • 関数 cell を使用した、空行列からなる cell 配列の作成は、新しい cell 配列の最後のインデックスに空行列を割り当てることと等価です。たとえば、次の 2 つのステートメントは等価です。

    C = cell(3,4,2);
    C{3,4,2} = [];

拡張機能

バージョン履歴

R2006a より前に導入

すべて展開する