图像缩略图

Mat2tiles:将阵列划分为相等大小的子阵列

版本1.0.0.0(2.76 kB) 马特J.
将任何维度的数组分成相等大小块的单元阵列。

40下载

更新2017年9月24日

查看许可证

Mat2tiles基本上是Mat2Cell的包装器,但只需将N维数组分解为相等大小的块时,有一个更方便的界面。它需要所需的块大小作为输入参数,而Mat2cell则不是。当您只想沿着特定尺寸铺砌时,Mat2tiles还具有一些方便的快捷方式(见下文)。
用法:

C = mat2tiles(x,d1,d2,d3,...,dn)
C = MAT2T1(X,[D1,D2,D3,...,DN])

将产生包含阵列x的相邻块的单元阵列c,每个尺寸为d1xd2xd3x ... xdn。如果尺寸Di不均匀地分成尺寸(x​​,i),则沿尺寸I的x的上边界处的块将被截断。

允许DI可提供值INF。完成此操作时,它相当于设置di = size(x,i)。如果您只想沿某些数组尺寸拼接,这非常有用。

示例1:将28x28矩阵分成4x7子矩阵

>> A =兰特(28);C = mat2tiles(a,[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双]

示例2:将20x20x6数组分成20x6x3子阵列。这个例子
说明了如何使用“inf”来指示其中一个子阵列
尺寸与原始阵列中的尺寸相同,在这种情况下(A,1)= 20。


>> A =兰特(20,20,6);

>> C = MAT2TILES(A,[INF,6,3])%相当于MAT2TOLES(A,[20,6,3])

C(:,:,1)=

[20x6x3双] [20x6x3双] [20x6x3双] [20x2x3双]


C(:,:,2)=

[20x6x3双] [20x6x3双] [20x6x3双] [20x2x3双]

该示例还显示了原始阵列没有的情况
将均匀分为指定大小的子阵列。因此,请注意
一些边界子块为20x2x3。

引用

MATT J(2021)。Mat2tiles:将阵列划分为相等大小的子阵列(//www.tatmou.com/matlabcentral/fileexchange/35085-mat2tiles-dide-array-into-qual-sized-sub-arrays),Matlab中央文件交换。检索到

评论和评级(9.

Ameer Hamza.

浮标炸弹

使用大阵列时,比Mat2cell更直观!

mahmoud afifi

马特J.

@jonathan,

您将使用Cell2mat为此。

乔纳森克鲁恩

是否有程序在操作数据后是否有函数?

马特J.

谢谢,张!

昌洪

我认为这是一个好的进入,它比mat2cell更直观。

马特J.

@马修
如上所述中所提到的,例程在它对Matlab的本机Mat2Cell完成的内容中非常相似,仅在其输入语法中不同。因此,我没有预见到对Mat2Cell文档中已经可用的示例的需求。MAT2TILES的输入语法,您将找到其帮助评论中的解释

C = mat2tiles(x,d1,d2,d3,...,dn)
C = MAT2T1(X,[D1,D2,D3,...,DN])

与在Mat2cell中一样,x是数字输入阵列,C是分为小区的相同数组。DI是分区的尺寸。

马修

有趣的功能和可能非常有用。但是,您的代码和评论都不提供一个基本示例,即正确展示其使用情况。

Matlab释放兼容性
用R2011B创建
兼容任何释放
平台兼容性
视窗 苹果系统 Linux.

社区宝藏狩猎

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

开始狩猎!