Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MATLAB中将矩阵分解为子矩阵_Matlab - Fatal编程技术网

在MATLAB中将矩阵分解为子矩阵

在MATLAB中将矩阵分解为子矩阵,matlab,Matlab,我有一张大小为412x550的RGB图像。我想把它分成大小为2x2的子矩阵。我曾尝试使用mat2cell函数,但它给出了错误。错误是: 输入参数D1到D2的总和必须等于 输入矩阵大小[412 550] 如何解决此错误以获得所需的子矩阵?您可能对语法有点误解。适合您的情况的正确语法是 >> A = rand(412,550); >> B = mat2cell(A, 2*ones(size(A,1)/2,1), 2*ones(size(A,2)/2,1)) ans =

我有一张大小为412x550的RGB图像。我想把它分成大小为
2x2
的子矩阵。我曾尝试使用
mat2cell
函数,但它给出了错误。错误是:

输入参数D1到D2的总和必须等于 输入矩阵大小[412 550]


如何解决此错误以获得所需的子矩阵?

您可能对语法有点误解。适合您的情况的正确语法是

>> A = rand(412,550);
>> B = mat2cell(A, 2*ones(size(A,1)/2,1), 2*ones(size(A,2)/2,1))

ans = 
    [2x2 double]    [2x2 double]    ... 
    [2x2 double]    [2x2 double]    ...
    ...

你可能把语法弄错了一点。适合您的情况的正确语法是

>> A = rand(412,550);
>> B = mat2cell(A, 2*ones(size(A,1)/2,1), 2*ones(size(A,2)/2,1))

ans = 
    [2x2 double]    [2x2 double]    ... 
    [2x2 double]    [2x2 double]    ...
    ...

您应该使用函数
im2col
。这正是你需要的

A = rand(412,550);
B = im2col(A,[2 2]);
文件在那里:


您应该使用功能
im2col
。这正是你需要的

A = rand(412,550);
B = im2col(A,[2 2]);
文件在那里:


通常,您可以使用以下代码将图像划分为块(用于压缩过程或其他)


一般来说,您可以使用以下代码将图像划分为块(用于压缩过程或其他)


您必须显示您实际尝试的内容(代码本身),因为您可能只是语法有点错误。您也可以尝试一下
im2col
。@Maurits:如果OP有图像处理工具箱(看起来似乎合理,但您永远不知道),您必须显示您实际尝试的内容(代码本身)因为你可能只是把语法弄错了一点。你也可以试试
im2col
。@Maurits:如果OP有图像处理工具箱(看起来似乎有道理,但你永远不知道),事实上,Maurits已经在评论中谈过了。实际上,Maurits已经在评论中谈过了。