num2cell
一定サイズのセルをもつ cell 配列への変換
説明
は、C
= num2cell(A
,dim
)A
の内容を C
の個別の cell に分けます。ここで dim
は各 cell に含める A
の次元を指定します。dim
はスカラーまたは次元をもつベクトルのいずれでも構いません。たとえば、A
が 2 行 3 列の配列の場合には次のようになります。
num2cell(A,1)
は、1 行 3 列の cell 配列C
を作成し、ここで各セルにはA
の 2 行 1 列の列が含まれます。num2cell(A,2)
は、2 X 1 の cell 配列C
を作成し、ここで各セルにはA
の 1 X 3 列が含まれます。num2cell(A,[1 2])
は、1 行 1 列の cell 配列C
を作成し、ここで各セルには配列A
の全体が含まれます。
例
配列を cell 配列に変換
数値配列の全要素を個別のセルに配置します。
a = magic(3)
a = 3×3
8 1 6
3 5 7
4 9 2
c = num2cell(a)
c=3×3 cell array
{[8]} {[1]} {[6]}
{[3]} {[5]} {[7]}
{[4]} {[9]} {[2]}
単語を構成する各文字を配列の個別のセルに配置します。
a = ['four';'five';'nine']
a = 3x4 char array
'four'
'five'
'nine'
c = num2cell(a)
c = 3x4 cell
{'f'} {'o'} {'u'} {'r'}
{'f'} {'i'} {'v'} {'e'}
{'n'} {'i'} {'n'} {'e'}
数値配列の cell 配列を作成
4 X 3 X 2 の数値配列を生成し、4 行 1 列の列ベクトルをもつ 1 X 3 X 2 の cell 配列を作成します。
A = reshape(1:12,4,3); A(:,:,2) = A*10
A = 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 = num2cell(A,1)
C = 1x3x2 cell array
C(:,:,1) =
{4x1 double} {4x1 double} {4x1 double}
C(:,:,2) =
{4x1 double} {4x1 double} {4x1 double}
4 行 1 列の各ベクトルには、A
の "最初の" 次元方向の要素が含まれています。
C{1}
ans = 4×1
1
2
3
4
1 行 3 列の数値配列で構成される 4 X 1 X 2 の cell 配列を作成します。
C = num2cell(A,2)
C = 4x1x2 cell array
C(:,:,1) =
{[ 1 5 9]}
{[2 6 10]}
{[3 7 11]}
{[4 8 12]}
C(:,:,2) =
{[ 10 50 90]}
{[20 60 100]}
{[30 70 110]}
{[40 80 120]}
1 行 3 列の各行ベクトルには、A
の "2 番目の" 次元方向の要素が含まれています。
C{1}
ans = 1×3
1 5 9
最後に、1 X 1 X 2 の数値配列で構成される 4 行 3 列の cell 配列を作成します。
C = num2cell(A,3)
C=4×3 cell array
{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 = ans(:,:,1) = 1 ans(:,:,2) = 10
多次元にわたる組み合わせ
複数の次元方向に要素を数値配列に組み合わせることにより cell 配列を作成します。
A = reshape(1:12,4,3); A(:,:,2) = A*10
A = 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 = num2cell(A,[1 3])
c=1×3 cell array
{4x1x2 double} {4x1x2 double} {4x1x2 double}
4 X 1 X 2 の各配列には、A
の最初と 3 番目の次元方向の要素が含まれています。
c{1}
ans = ans(:,:,1) = 1 2 3 4 ans(:,:,2) = 10 20 30 40
c = num2cell(A,[2 3])
c=4×1 cell array
{1x3x2 double}
{1x3x2 double}
{1x3x2 double}
{1x3x2 double}
入力引数
A
— 入力
任意の多次元配列タイプ
入力は、任意の多次元配列タイプとして指定されます。
データ型: double
| single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| char
| string
| struct
| cell
| categorical
| datetime
| duration
| calendarDuration
| function_handle
出力引数
C
— 結果の配列
cell 配列
cell 配列として返される、結果の配列。C
のサイズは、A
のサイズと dim
の値に依存します。
dim
が指定されていない場合は、C
はA
と同じサイズです。dim
がスカラーの場合には、C
にはnumel(A)/size(A,dim)
個のセルが含まれます。dim
が 1 または 2 の場合には、各セルにはそれぞれ列ベクトルまたは行ベクトルが含まれます。dim
> 2 の場合には、各セルにはdim
番目の次元の長さがsize(A,dim)
であり、その他の次元の大きさがすべて 1 である配列が含まれます。たとえば、4 × 7 × 3 の配列
A
の場合、この図はnum2cell
がdim
値が1
、2
および3
の値に対応するセルを作成する方法を示します。dim
がN
個の値を含むベクトルである場合には、C
はnumel(A)/prod([size(A,dim(1)),...,size(A,dim(N))])
個のセルをもちます。各セルには、dim
(i)
番目の次元の長さがsize(A,dim(i))
であり、その他の大きさが 1 の次元である配列が含まれます。たとえば、4 x 7 x 3 の配列があれば
dim
に正の整数ベクトルを指定して異なる次元の cell 配列を作成できます。
データ型: cell
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意事項および制限事項:
コード生成は、
dim
の入力をサポートしていません。
スレッドベースの環境
MATLAB® の backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool
を使用してコードを高速化します。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
分散配列
Parallel Computing Toolbox™ を使用して、クラスターの結合メモリ上で大きなアレイを分割します。
この関数は分散配列を完全にサポートしています。詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2006a より前に導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)