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)。如果你只想沿着特定的数组维度平铺,这是很有用的。
将一个28x28矩阵分解为4x7子矩阵
> > =兰德(28);C = mat2tiles(,(4、7))
C =
[4x7双][4x7双][4x7双][4x7双]
[4x7双][4x7双][4x7双][4x7双]
[4x7双][4x7双][4x7双][4x7双]
[4x7双][4x7双][4x7双][4x7双]
[4x7双][4x7双][4x7双][4x7双]
[4x7双][4x7双][4x7双][4x7双]
[4x7双][4x7双][4x7双][4x7双]
将一个20x20x6阵列分割成20x6x3子阵列。这个例子
演示如何使用'Inf'指示子数组之一
维数与原始数组相同,在本例中size(A,1)=20。
> > =兰德(6)20日20日;
>> C=mat2tiles(A,[Inf,6,3]) %equivalent to mat2tiles(A,[20,6,3])
C (:: 1) =
[20x6x3双][20x6x3双][20x6x3双][20x6x3双]
C (:: 2) =
[20x6x3双][20x6x3双][20x6x3双][20x6x3双]
该示例还显示了原始数组不存在的情况
平均分成指定大小的子数组。因此要注意
一些边界子块是20x2x3。
引用作为
马特·J(2021)。将数组分成大小相等的子数组(//www.tianjin-qmedu.com/matlabcentral/fileexchange/35085-mat2tiles-divide-array-into-equal-sized-sub-arrays), MATLAB中央文件交换。检索.