图片缩略图

将数组分成大小相等的子数组

version 1.0.0.0 (2.76 KB) by 马特·J
将任意维度的数组分割为大小相同的单元格数组。

2.7 k下载

更新2017年9月24日

查看许可协议

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中央文件交换。检索

MATLAB版本兼容性
创建R2011b
与任何版本兼容
平台的兼容性
窗户 macOS Linux

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!