ドキュメンテーション

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

num2cell

一定サイズのセルをもつセル配列への変換

構文

  • C = num2cell(A)
  • C = num2cell(A,dim)

説明

C = num2cell(A) は、配列A の各要素をセル配列 C の個別のセルに配置することによって、配列 A をセル配列 C に変換します。配列 A は数値である必要はありません。

C = num2cell(A,dim) は、A の内容を C の個別のセルに分けます。ここで dim は各セルに含める A の次元を指定します。dim はスカラーまたは次元をもつベクトルのいずれでも構いません。たとえば、A が 2 行 3 列の配列の場合には次のようになります。

  • num2cell(A,1) は、1 行 3 列のセル配列 C を作成し、ここで各セルには A の 2 行 1 列の列が含まれます。

  • num2cell(A,2) は、2 X 1 のセル配列 C を作成し、ここで各セルには A の 1 X 3 列が含まれます。

  • num2cell(A,[1 2]) は、1 行 1 列のセル配列 C を作成し、ここで各セルには配列 A の全体が含まれます。

すべて展開する

配列をセル配列に変換

数値配列の全要素を個別のセルに配置します。

a = magic(3)
c = num2cell(a)
a =

     8     1     6
     3     5     7
     4     9     2


c = 

    [8]    [1]    [6]
    [3]    [5]    [7]
    [4]    [9]    [2]

単語を構成する各文字を配列の個別のセルに配置します。

a = ['four';'five';'nine']
c = num2cell(a)
a =

four
five
nine


c = 

    'f'    'o'    'u'    'r'
    'f'    'i'    'v'    'e'
    'n'    'i'    'n'    'e'

数値配列のセル配列を作成

4 X 3 X 2 の数値配列を生成し、4 行 1 列の列ベクトルをもつ 1 X 3 X 2 のセル配列を作成します。

A = reshape(1:12,4,3);
A(:,:,2) = A*10
C = num2cell(A,1)
A(:,:,1) =

     1     5     9
     2     6    10
     3     7    11
     4     8    12


A(:,:,2) =

    10    50    90
    20    60   100
    30    70   110
    40    80   120


C(:,:,1) = 

    [4x1 double]    [4x1 double]    [4x1 double]


C(:,:,2) = 

    [4x1 double]    [4x1 double]    [4x1 double]

4 行 1 列の各ベクトルには、A"最初の" 次元方向の要素が含まれています。

C{1}
ans =

     1
     2
     3
     4

1 行 3 列の数値配列で構成される 4 X 1 X 2 のセル配列を作成します。

C = num2cell(A,2)
C(:,:,1) = 

    [1x3 double]
    [1x3 double]
    [1x3 double]
    [1x3 double]


C(:,:,2) = 

    [1x3 double]
    [1x3 double]
    [1x3 double]
    [1x3 double]

1 行 3 列の各行ベクトルには、A"2 番目の" 次元方向の要素が含まれています。

C{1}
ans =

     1     5     9

最後に、1 X 1 X 2 の数値配列で構成される 4 行 3 列のセル配列を作成します。

C = num2cell(A,3)
C = 

    [1x1x2 double]    [1x1x2 double]    [1x1x2 double]
    [1x1x2 double]    [1x1x2 double]    [1x1x2 double]
    [1x1x2 double]    [1x1x2 double]    [1x1x2 double]
    [1x1x2 double]    [1x1x2 double]    [1x1x2 double]

1 X 1 X 2 の各ベクトルには、A"3 番目の" 次元方向の要素が含まれています。

C{1}
ans(:,:,1) =

     1


ans(:,:,2) =

    10

多次元にわたる組み合わせ

複数の次元方向に要素を数値配列に組み合わせることによりセル配列を作成します。

A = reshape(1:12,4,3);
A(:,:,2) = A*10
c = num2cell(A,[1 3])
A(:,:,1) =

     1     5     9
     2     6    10
     3     7    11
     4     8    12


A(:,:,2) =

    10    50    90
    20    60   100
    30    70   110
    40    80   120


c = 

    [4x1x2 double]    [4x1x2 double]    [4x1x2 double]

4 X 1 X 2 の各配列には、A の最初と 3 番目の次元方向の要素が含まれています。

c{1}
ans(:,:,1) =

     1
     2
     3
     4


ans(:,:,2) =

    10
    20
    30
    40

c = num2cell(A,[2 3])
c = 

    [1x3x2 double]
    [1x3x2 double]
    [1x3x2 double]
    [1x3x2 double]

入力引数

すべて展開する

A — 入力任意の多次元配列タイプ

入力は、任意の多次元配列タイプとして指定されます。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | struct | cell | function_handle

dimA の次元正の整数 | 正の整数ベクトル

正の整数または正の整数ベクトルとして指定される A の次元。dim は 1 から ndims(A) の間でなければなりません。

要素は数値順になっている必要はありません。しかし、num2cellC の各セルの配列の次元を並べ替えて、指定された次元の順序に一致させます。

データ型: double

出力引数

すべて展開する

C — 結果の配列セル配列

セル配列として返される、結果の配列。C のサイズは、A のサイズと dim の値に依存します。

  • dim が指定されていない場合は、CA と同じサイズです。

  • dim がスカラーの場合には、C には numel(A)/size(A,dim) 個のセルが含まれます。dim が 1 または 2 の場合には、各セルにはそれぞれ列ベクトルまたは行ベクトルが含まれます。dim > 2 の場合には、各セルには dim 番目の次元の長さが size(A,dim) であり、その他の次元の大きさがすべて 1 である配列が含まれます。

    たとえば、4 × 7 × 3 の配列 A の場合、この図は num2celldim 値が 12 および 3 の値に対応するセルを作成する方法を示します。

  • dimN 個の値を含むベクトルである場合には、Cnumel(A)/prod([size(A,dim(1)),...,size(A,vdim(N))]) 個のセルをもちます。各セルには、dim(i) 番目の次元の長さが size(A,dim(i)) であり、その他の大きさが 1 の次元である配列が含まれます。

    たとえば、4 X 7 X 3 の配列があれば dim に正の整数ベクトルを指定して異なる次元のセル配列を作成できます。

参考

| |

この情報は役に立ちましたか?