ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

mat2cell

配列の、cell 内にサブ配列を含む cell 配列への変換

説明

C = mat2cell(A,dim1Dist,...,dimNDist) は、配列 A を小さな配列に分割し、cell 配列 C に返します。ベクトル dim1Dist,...dimNDist は、A の行と列を (可能な場合は) より高次元に分割する方法を指定します。C の小さな配列はそれぞれ異なるサイズにすることもできます。A はどのデータ型にもできます。

C = mat2cell(A,rowDist) は、配列 An 行 1 列の cell 配列 C に分割します。ここで、nrowDist の要素数です。

すべて折りたたむ

5 行 4 列の数値配列を作成します。

A = reshape(1:20,5,4)'
A = 4×5

     1     2     3     4     5
     6     7     8     9    10
    11    12    13    14    15
    16    17    18    19    20

A を 2 行 3 列の 2 つのサブ配列と 2 行 2 列の 2 つのサブ配列に分割します。このサブ配列を cell 配列で返します。

C = mat2cell(A,[2 2],[3 2])
C = 2x2 cell array
    {2x3 double}    {2x2 double}
    {2x3 double}    {2x2 double}

関数 celldisp を使用して、C のサブ配列を表示します。

celldisp(C)
 
C{1,1} =
 
     1     2     3
     6     7     8

 
 
C{2,1} =
 
    11    12    13
    16    17    18

 
 
C{1,2} =
 
     4     5
     9    10

 
 
C{2,2} =
 
    14    15
    19    20

 

配列を作成します。

A = reshape(1:20,5,4)'
A = 4×5

     1     2     3     4     5
     6     7     8     9    10
    11    12    13    14    15
    16    17    18    19    20

A の行を分割し、cell 配列に 2 つのサブ配列が含まれるようにします。rowDist の最初の要素が 1 なので、C の最初の cell には A の 1 行目が含まれます。rowDist の 2 番目の要素は 3 なので、C の次の cell には A の次の 3 行が含まれます。rowDist の要素の合計は、A の行数と等しくなります。

rowDist = [1 3];
C = mat2cell(A,rowDist)
C = 2x1 cell array
    {1x5 double}
    {3x5 double}

サブ配列を表示します。

celldisp(C)
 
C{1} =
 
     1     2     3     4     5

 
 
C{2} =
 
     6     7     8     9    10
    11    12    13    14    15
    16    17    18    19    20

 

入力引数

すべて折りたたむ

入力配列。

各次元に沿った入力配列要素の分散を表すベクトル。数値ベクトルとして指定します。

たとえば、A が 60 行 50 列の配列である場合、この引数を [10 20 30],[25 25] と指定すると、A を次のコードと図で示すとおりに分割できます。C は、A から分割された 6 つのサブ配列を含む cell 配列です。

C = mat2cell(A,[10 20 30],[25 25])

AK 番目の次元について、対応するベクトル dimKDist の要素を指定し、sum(dimKDist)K 番目の次元のサイズと等しくなるようにします。

AK 番目の次元のサイズが 0 の場合、対応するベクトル dimKDist を以下のコードのように空の配列 [] として指定します。

A = rand(3,0,4);
C = mat2cell(A,[1 2],[],[2 1 1]);

入力配列の行単位の分散を表すベクトル。数値ベクトルとして指定します。A を他の次元に沿って分割する方法を指定しない場合、関数 mat2celln 行 1 列の cell 配列 C を返します。ここで、nrowDist の要素数と等しくなります。

rowDist の各要素は、C の対応する cell にあるサブ配列の行数を指定します。rowDist の要素の合計は、A の行数と等しくなければなりません。

R2006a より前に導入