如何将一个1616的0,1矩阵,分成22的64个小矩阵,并计算每个小矩阵中所有数的和,接着把它分成44的16个小矩阵,以此类推,直到分成88的4个小矩阵
你好,可以这样做
A = randi([0,1],16,16); %随机01矩阵,这里只是举个例子
k = 2.^(1:3);
for i = 1:length(k)
s = k(i);
c = mat2cell(A, s*ones(1, 16/s), s*ones(1, 16/s));% c里面就是你要分的小矩阵,i=1时分成8×8个,i=2时分成4×4个....
[i1,j1] = meshgrid(1:16/s);
summ = arrayfun(@(i,j)sum(c{i,j}(:)),i1,j1);
end
结果是随机的,所以给了一个计算结果:
summ =
1 4 3 3 2 0 2 4
1 1 2 2 1 4 3 2
2 2 2 1 3 1 2 2
2 1 2 4 2 0 2 3
0 2 3 1 2 2 0 0
2 3 0 3 1 2 2 2
3 2 1 1 3 3 2 0
2 2 2 2 0 3 1 2
summ =
7 10 7 11
7 9 6 9
7 7 7 4
9 6 9 5
summ =
33 33
29 25