MAT2TILES基本上是mat2cell的包装器,但当您只是试图将n维数组分解为大小相等的块时,它具有更方便的接口。它接受所需的块大小作为输入参数,而mat2cell不接受。MAT2TILES也有一些方便的快捷方式,当你只想沿着特定的维度进行平铺(见下文)。
用法:
C = mat2tiles (X, D1、D2、D3,…,Dn)
C = mat2tiles (X, (D1、D2、D3…,Dn))
将生成一个单元格数组C,其中包含数组X的相邻块,每个块的尺寸为D1xD2xD3x…xDn。如果一个维度Di没有均匀地划分为(X,i)大小,那么沿着维度i的X上边界的块将被截断。
允许Di被赋值为Inf。当这样做时,它相当于设置Di=size(X,i)。如果您只想沿着特定的数组维度平铺,这是非常有用的。
例1:将一个28x28的矩阵拆分为4x7的子矩阵
> > =兰德(28);C = mat2tiles(,(4、7))
C =
[4x7 double] [4x7 double] [4x7 double]
[4x7 double] [4x7 double] [4x7 double]
[4x7 double] [4x7 double] [4x7 double]
[4x7 double] [4x7 double] [4x7 double]
[4x7 double] [4x7 double] [4x7 double]
[4x7 double] [4x7 double] [4x7 double]
[4x7 double] [4x7 double] [4x7 double]
例2:将一个20x20x6的数组拆分为20x6x3的子数组。这个例子
说明了如何使用'Inf'来表示子数组中的一个子数组
维度将与原始数组相同,在这种情况下size(A,1)=20。
> > =兰德(6)20日20日;
>> C=mat2tiles(A,[Inf,6,3]) %等效于mat2tiles(A,[20,6,3])
C (:: 1) =
[20x6x3 double] [20x6x3 double] [20x2x3 double] [20x6x3 double]
C (:: 2) =
[20x6x3 double] [20x6x3 double] [20x2x3 double] [20x6x3 double]
该示例还显示了原始数组不存在的情况
均匀地分成指定大小的子数组。因此请注意
一些边界子块是20x2x3。
化学式용양식
马特J(2023)。MAT2TILES:将数组划分为大小相等的子数组(//www.tianjin-qmedu.com/matlabcentral/fileexchange/35085-mat2tiles-divide-array-into-equal-sized-sub-arrays), MATLAB中央文件交换。검색됨.
버전 | 게시됨 | 릴리스정보 | |
---|---|---|---|
1.0.0.0 | 增加了帮助文档的示例。 |