mat2cell
将数组转换为在元胞中包含子数组的元胞数组
说明
示例
划分数组并以元胞数组形式返回子数组
创建一个 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 子数组。以元胞数组形式返回子数组。
C = mat2cell(A,[2 2],[3 2])
C=2×2 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
的行,以使元胞数组包含两个子数组。由于 rowDist
的第一个元素是 1
,因此 C
的第一个元胞包含 A
的第一行。rowDist
的第二个元素是 3
,因此 C
的下一个元胞包含 A
的接下来的三行。rowDist
的元素总和等于 A
的行数。
rowDist = [1 3]; C = mat2cell(A,rowDist)
C=2×1 cell array
{[1 2 3 4 5]}
{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
— 输入数组
数组
输入数组。
dim1Dist,...,dimNDist
— 输入数组元素的分布
数值向量
描述沿每个维度的输入数组元素分布的向量,指定为数值向量。
例如,如果 A
是 60×50 数组,则可以将此参量指定为 [10 20 30],[25 25]
来划分 A
,如下面的代码和图形所示。C
是元胞数组,其中包含从 A
中拆分出来的六个子数组。
C = mat2cell(A,[10 20 30],[25 25])
对于 A
的第 K
个维度,在指定对应向量 dimKDist
的元素时,需满足 sum(dimKDist)
等于第 K
个维度的大小。
如果 A
的第 K
个维度的大小为零,则应将对应向量 dimKDist
指定为空数组 []
,如代码中所示。
A = rand(3,0,4); C = mat2cell(A,[1 2],[],[2 1 1]);
rowDist
— 行分布
数值向量
描述输入数组行分布情况的向量,指定为数值向量。当您未指定如何沿其他任何维度划分 A
时,mat2cell
函数将返回一个 n
×1 元胞数组 C
,其中 n
等于 rowDist
中的元素数。
rowDist
的每个元素指定 C
中对应元胞所含子数组的行数。rowDist
的元素总和必须等于 A
的行数。
扩展功能
基于线程的环境
使用 MATLAB® backgroundPool
在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool
加快代码运行速度。
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
版本历史记录
在 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)