2015-12-03 56 views
0

我有一个由矩阵表示的图像。假设它是21x23矩阵。Matlab将图像分割为10x10个单元格

如何将矩阵分成10行和10列。不过,它们的尺寸不一定相同。

有一个功能mat2cell,但我不知道如何使用它

+1

什么是每个单元格的大小实际需求?你需要10行×10列,但不一定......我不明白你需要什么。请提供更多细节。 –

回答

4

让我们您的数据存储在inputmat。

首先,你必须计算子矩阵的维数。例如,他们可能是:

rows = diff(floor(linspace(0,21,11))) 
cols = diff(floor(linspace(0,23,11))) 

,然后你执行:

cellmatrix = mat2cell(inputmat,rows, cols); 
+1

如果要在每个维度中指定的单元格数量没有均匀分配,则这不起作用。 MATLAB会在这种情况下给你一个错误。对于OP的情况,他们想要从21×23图像创建**不均匀**尺寸的10×10个单元。你需要做其他事情,或者修改你调用'mat2cell'的方式来解决尺寸不均匀的单元。 – rayryeng

+2

我想要的是'rows = diff(floor(linspace(0,21,11)))' –

+0

@ Ben Voigt:这是计算行数的正确方法。我会根据您的评论更新我的解决方案。 –