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 配列のデータへのアクセスを参照してください。