6.3.1 Basic Usage of Cell Arrays

Last-modified: 2025-03-21 (金) 21:12:31

6.3.1 セル配列の基本的な使用法

例として、次のコードは文字列と2行2列のランダム行列を含むセル配列を作成します。

c = {"a string", rand(2, 2)};

セル配列の要素にアクセスするには、{ および } 演算子を使用してインデックスを付けることができます。したがって、前の例で作成された変数は次のようにインデックスを付けることができます。

c{1}
    ⇒ ans = a string

数値配列と同様に、セル配列の複数の要素は、インデックスのベクトルでインデックス付けすることで抽出できます。

c{1:2}
    ⇒ ans = a string
    ⇒ ans =
              0.593993   0.627732
              0.377037   0.033643

インデックス演算子は、セル配列の要素を挿入または上書きするためにも使用できます。次のコードは、以前に作成されたセル配列の3番目の場所にスカラー3を挿入します。

c{3} = 3
    ⇒ c =
        {
          [1,1] = a string
          [1,2] =
             0.593993   0.627732
             0.377037   0.033643
          [1,3] =  3
        }

セル配列のインデックス作成の詳細については、「セル配列のインデックス作成」で説明されています。

一般的に、ネストされたセル配列は、前の例のように階層的に表示されます。状況によっては、インデックスで参照する方が合理的であり、これはcelldisp 関数によって実行できます。

: celldisp (c)

: celldisp (c, name)

セル配列の内容を再帰的に表示します。

デフォルトでは、値は変数cの名前で表示されます。ただし、この名前は変数名に置き換えることができます。例:

c = {1, 2, {31, 32}};
celldisp (c, "b")
  ⇒
     b{1} =
      1
     b{2} =
      2
     b{3}{1} =
      31
     b{3}{2} =
      32

See also: disp.

オブジェクトがセル配列であるかどうかをテストするには、iscell 関数を使用します。例:

iscell (c)
    ⇒ ans = 1
iscell (3)
    ⇒ ans = 0

: tf = iscell (x)

xがセル配列オブジェクトの 場合は true を返します。

See also: ismatrix, isstruct, iscellstr, isa.