mat2cell输入参数错误

时间:2016-04-09 06:42:23

标签: matlab matrix

我有一个大小为1134×1134的矩阵,我是从图像中获得的(使用imread函数)。现在我想将图像分成3×3矩阵进行分析。为此,我尝试使用mat2cell,如下所示。

image = imread('C:\Users\ka\Desktop\test\step.png');  
X = mat2cell(image, [3], [3]);  

但我收到了一个错误:

  

使用mat2cell出错(第97行)       输入参数D1到D2必须与输入矩阵大小的每个维度相加[1134 1134]。'

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

错误消息确实说明了一切:mat2cell的每个输入必须总和为整个图像的大小,在本例中为1134(和1134)。有关详细信息,请参阅documentation

我相信你想要做的是:

sz = [1134 1134]; % size of input image
I = rand(sz); % make up some random data for testing
chunk_size = [3 3]; % your desired size of the chunks image is broken into
sc = sz ./ chunk_size; % number of chunks in each dimension; must be integer

% split to chunk_size(1) by chunk_size(2) chunks
X = mat2cell(I, chunk_size(1) * ones(sc(1),1), chunk_size(2) *ones(sc(2),1));

让我们检查输出是否符合要求:

size(X) % == sc
size(X{1}) % == chunk_size
sum(chunk_size(1) * ones(sc(1),1)) % 1134, as required
sum(chunk_size(2) * ones(sc(2),1)) % 1134, as required