Main Content

cell 配列の cell の追加または削除

cell 配列は、他の MATLAB® 配列型と同じ拡張、連結、および削除の基本規則に従います。ただし、2 つの方法で cell 配列にインデックスを付けることができます。中かっこ {} を使用して cell の内容にアクセスするか、小かっこ () を使用して cell 自体を参照できます。cell 配列の cell を追加、削除、または結合するときは、この違いに留意してください。

cell の追加

cell 配列を拡張する一般的な方法として、cell 配列を垂直または水平に連結できます。標準の大かっこ連結演算子 [] を使用します。垂直方向の連結の場合はセミコロン、水平方向の連結の場合はコンマで要素を区切ります。

C1 = {'one',2};
C2 = {ones(3,3),'four'};

C = [C1; C2]
C=2×2 cell array
    {'one'     }    {[   2]}
    {3x3 double}    {'four'}

C_horz = [C1,C2]
C_horz=1×4 cell array
    {'one'}    {[2]}    {3x3 double}    {'four'}

cell 配列と非 cell 配列を連結すると、非 cell 配列は 1 つの cell に含まれます。したがって、cell 配列はベクトルでなければなりません。

A = [1 2 3; 4 5 6];
C3 = [C1,A]
C3=1×3 cell array
    {'one'}    {[2]}    {2x3 double}

非 cell 配列から個別の cell を作成するには、num2cell を使用できます。

C4 = [C,num2cell(A)]
C4=2×5 cell array
    {'one'     }    {[   2]}    {[1]}    {[2]}    {[3]}
    {3x3 double}    {'four'}    {[4]}    {[5]}    {[6]}

cell 配列ではスカラー拡張もサポートされています。つまり、既存の配列の外側にある cell の内容に値を代入すると、配列はそれらを含むように拡張されます。拡張された配列は方形で、新たに生じた cell の中で値が代入されなかった cell には空の数値配列が含まれます。cell の内容を代入するときは、中かっこを使用します。

C{3,3} = 9
C=3×3 cell array
    {'one'     }    {[       2]}    {0x0 double}
    {3x3 double}    {'four'    }    {0x0 double}
    {0x0 double}    {0x0 double}    {[       9]}

C{end,end+1} = []
C=3×4 cell array
    {'one'     }    {[       2]}    {0x0 double}    {0x0 double}
    {3x3 double}    {'four'    }    {0x0 double}    {0x0 double}
    {0x0 double}    {0x0 double}    {[       9]}    {0x0 double}

cell の内容を置換するには、中かっこを使用して cell 配列を定義してから、小かっこを使用してそれを同じサイズの cell のセットに代入します。

C(3,:) = {'replacement', rand(2,2), 42, 'row'}
C=3×4 cell array
    {'one'        }    {[       2]}    {0x0 double}    {0x0 double}
    {3x3 double   }    {'four'    }    {0x0 double}    {0x0 double}
    {'replacement'}    {2x2 double}    {[      42]}    {'row'     }

cell の削除

cell 配列の行または列を削除する構文は、他の MATLAB 配列の場合と同じです。空の大かっこのペアに等しい cell を設定します。たとえば、C の 2 番目の行を削除します。

C(2,:) = []
C=2×4 cell array
    {'one'        }    {[       2]}    {0x0 double}    {0x0 double}
    {'replacement'}    {2x2 double}    {[      42]}    {'row'     }

インデックスを中かっこで囲むと、cell の内容が空の配列に置き換えられます。

C{1,1} = []
C=2×4 cell array
    {0x0 double   }    {[       2]}    {0x0 double}    {0x0 double}
    {'replacement'}    {2x2 double}    {[      42]}    {'row'     }

cell の連結

cell には任意の型またはサイズのデータを含めることができるため、cell を結合したり、複数の cell から同時にデータを抽出したりするには、データに互換性がなければなりません。詳細と例については、cell 配列のデータへのアクセスを参照してください。

関連するトピック