Arrays Matlab将图像分割为10x10个单元
我有一个用矩阵表示的图像。假设它是21x23矩阵 如何将矩阵划分为10行10列。不过,它们不必大小相同Arrays Matlab将图像分割为10x10个单元,arrays,image,matlab,divide,Arrays,Image,Matlab,Divide,我有一个用矩阵表示的图像。假设它是21x23矩阵 如何将矩阵划分为10行10列。不过,它们不必大小相同 有一个函数mat2cell,但我不知道如何使用它让我们将数据存储在inputmat中 首先,你必须计算子矩阵的维数。例如,它们可以是: rows = diff(floor(linspace(0,21,11))) cols = diff(floor(linspace(0,23,11))) 然后你执行: cellmatrix = mat2cell(inputmat,rows, cols); 让
有一个函数mat2cell,但我不知道如何使用它让我们将数据存储在inputmat中 首先,你必须计算子矩阵的维数。例如,它们可以是:
rows = diff(floor(linspace(0,21,11)))
cols = diff(floor(linspace(0,23,11)))
然后你执行:
cellmatrix = mat2cell(inputmat,rows, cols);
让我们将您的数据存储在inputmat中 首先,你必须计算子矩阵的维数。例如,它们可以是:
rows = diff(floor(linspace(0,21,11)))
cols = diff(floor(linspace(0,23,11)))
然后你执行:
cellmatrix = mat2cell(inputmat,rows, cols);
每个单元的实际大小要求是什么?你想要10行x 10列,但不一定……我不太明白你到底需要什么。请提供更多细节。每个单元格的实际大小要求是什么?你想要10行x 10列,但不一定……我不太明白你到底需要什么。请提供更多详细信息。如果要在每个维度中指定的单元格数不能平均分配,则此操作无效。在这种情况下,MATLAB将抛出一个错误。对于OP,他们希望从一张21 x 23的图像中创建10 x 10个大小不均匀的单元格。您需要做一些其他的事情,或者修改调用
mat2cell
的方式来解释大小不均的单元格。我认为需要的是rows=diff(floor(linspace(0,21,11))
@Ben Voigt:这是计算行数的正确方法。我将根据您的评论更新我的解决方案。您可能希望概括:输入中的行(=大小(inputmat,1)
),以及输出条带+1
(或类似名称),感谢您的更新。现在这将起作用+1。如果在每个维度中指定的单元格数不能平均分割,则此操作不起作用。在这种情况下,MATLAB将抛出一个错误。对于OP,他们希望从一张21 x 23的图像中创建10 x 10个大小不均匀的单元格。您需要做一些其他的事情,或者修改调用mat2cell
的方式来解释大小不均的单元格。我认为需要的是rows=diff(floor(linspace(0,21,11))
@Ben Voigt:这是计算行数的正确方法。我将根据您的评论更新我的解决方案。您可能希望概括:输入中的行(=大小(inputmat,1)
),以及输出条带+1
(或类似名称),感谢您的更新。现在这将起作用+从我这里得到1。