num2cell
将数组转换为相同大小的元胞数组
说明
示例
将一个数值数组的所有元素放入单独的元胞。
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 = 3×4 char array
'four'
'five'
'nine'
c = num2cell(a)
c = 3×4 cell
{'f'} {'o'} {'u'} {'r'}
{'f'} {'i'} {'v'} {'e'}
{'n'} {'i'} {'n'} {'e'}
生成一个 4×3×2 的数值数组,然后创建一个包含 4×1 列向量的 1×3×2 的元胞数组。
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 = 1×3×2 cell array
C(:,:,1) =
{4×1 double} {4×1 double} {4×1 double}
C(:,:,2) =
{4×1 double} {4×1 double} {4×1 double}
每个 4×1 向量包含沿 A
的第一维度的元素:
C{1}
ans = 4×1
1
2
3
4
创建 1×3 数值数组的 4×1×2 元胞数组。
C = num2cell(A,2)
C = 4×1×2 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
的第二维度的元素:
C{1}
ans = 1×3
1 5 9
最后,创建 1×1×2 数值数组的 4×3 元胞数组。
C = num2cell(A,3)
C=4×3 cell array
{1×1×2 double} {1×1×2 double} {1×1×2 double}
{1×1×2 double} {1×1×2 double} {1×1×2 double}
{1×1×2 double} {1×1×2 double} {1×1×2 double}
{1×1×2 double} {1×1×2 double} {1×1×2 double}
每个 1×1×2 向量包含沿 A
的第三维度的元素:
C{1}
ans = ans(:,:,1) = 1 ans(:,:,2) = 10
通过合并各个维度的数值数组创建一个元胞数组。
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
{4×1×2 double} {4×1×2 double} {4×1×2 double}
每个 4×1×2 数组包含沿 A
的第一维度和第三维度的元素:
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
{1×3×2 double}
{1×3×2 double}
{1×3×2 double}
{1×3×2 double}
输入参数
输入,指定为任何类型的多维数组。
数据类型: double
| single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| char
| string
| struct
| cell
| categorical
| datetime
| duration
| calendarDuration
| function_handle
输出参量
生成的数组,以元胞数组的形式返回。C
的大小取决于 A
的大小和 dim
的值。
如果未指定
dim
,则C
的大小与A
相同。如果
dim
是标量,则C
包含numel(A)/size(A,dim)
元胞。如果dim
是 1 或 2,则每个元胞分别包含一个列向量或行向量。如果dim
> 2,则每个元胞包含一个第dim
维的长度为size(A,dim)
的数组,并且其他维度都是单一维度。例如,给定一个 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))
并且其他维度为单一维度的数组。例如,给定一个 4×7×3 数组,您可以将
dim
指定为一个正整数向量以创建不同维度的元胞数组。
数据类型: cell
扩展功能
用法说明和限制:
代码生成不支持
dim
输入。
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
此函数完全支持分布式数组。有关详细信息,请参阅使用分布式数组运行 MATLAB 函数 (Parallel Computing Toolbox)。
版本历史记录
在 R2006a 之前推出
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- 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)