MAT2TILES:将数组划分为大小相等的子数组

버전1.0.0.0(2.76 kb)작성자: 马特·J
将任意维度的数组分割为大小相等的块的单元格数组。

다운로드수:3.2k

업데이트날짜: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)。如果您只想沿着特定的数组维度平铺,这是非常有用的。

例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中央文件交换。검색됨

Matlab릴리스호환정보
개발환경:R2011b
모든릴리스와호환
플랫폼호환성
窗户 macOS Linux

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!
버전 게시됨 릴리스정보
1.0.0.0

增加了帮助文档的示例。
编辑标题