Split a matrix into smaller sub matricies

I've seen this answered on the web many times but none of the answers seem to give me what I need, so here it goes...
As a simple example, I have a 100x100 matrix
if true
x = ones(100)
% code
end
I would like to split this into 100 sub matrices, of size 10x10.
I would then like to sum each element of each sub matrix to give me a 10x10 matrix of these sums.
I am using these Matrices I quiver3 after this so I cannot use the mat2cell (as far as I understand) function to manipulate them into sizes I want.
Any suggestions appreciated, as always, thanks in advance for your help. John.

1 件のコメント

Fangjun Jiang
Fangjun Jiang 2016 年 2 月 12 日
What is the specification of the split, evenly split the row and column into 10, like 1 to 10, 11 to 20, ..., 91 to 100?

サインインしてコメントする。

 採用された回答

Matt J
Matt J 2016 年 2 月 12 日

0 投票

Using SEPBLOCKFUN ( Download )
result = sepblockfun(yourMatrix, [10,10], 'sum');

1 件のコメント

John Draper
John Draper 2016 年 2 月 12 日
Yes this works but it gives me the wrong answer. I think the problem lies elsewhere. Thank you though.

サインインしてコメントする。

その他の回答 (2 件)

Image Analyst
Image Analyst 2016 年 2 月 12 日

0 投票

What are your complaints about both of the two methods in the FAQ: http://matlab.wikia.com/wiki/FAQ#How_do_I_split_an_image_into_non-overlapping_blocks.3F ?

1 件のコメント

John Draper
John Draper 2016 年 2 月 12 日
Sorry, which methods are you referring to?

サインインしてコメントする。

Image Analyst
Image Analyst 2016 年 2 月 12 日

0 投票

You can use blockproc() if you have the Image Processing Toolbox, both to split up the image and take the mean of each block:
meanFilterFunction = @(theBlockStructure) mean2(theBlockStructure.data(:));
blockSize = [10, 10];
blockyImage = blockproc(grayImage, blockSize, meanFilterFunction);
See attach demo script below the image for a full demo.

カテゴリ

ヘルプ センター および File ExchangeVector Fields についてさらに検索

質問済み:

2016 年 2 月 12 日

回答済み:

2016 年 2 月 12 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by