MATLAB Answers

gathering two cells in confusion matrix

1 view (last 30 days)
If I have a 4*4 confusion matrix array [1 1 3 2; 1 0 2 1 ; 7 4 3 1; 5 6 3 7]. how can I combining both 2*2 regions are next to each other in order to constract a new array of 2*2 [3 8; 22 14]

  0 Comments

Sign in to comment.

Accepted Answer

Fangjun Jiang
Fangjun Jiang on 2 Apr 2020
Edited: Fangjun Jiang on 2 Apr 2020
If you have the Image Processing toolbox,
a=[1 1 3 2; 1 0 2 1 ; 7 4 3 1; 5 6 3 7];
fun = @(block_struct) sum(block_struct.data(:));
blockproc(a,[2 2],fun)
ans =
3 8
22 14
if Not,
a=rand(6,9);
RowBlock=2;
m=size(a,1)/RowBlock; % make sure m is an integer
ColBlock=3;
n=size(a,2)/ColBlock; % make sure n is an integer
b=mat2cell(a,repmat(RowBlock,1,m),repmat(ColBlock,1,n));
c=cellfun(@(x) sum(x(:)), b)

  1 Comment

Salma Hassan
Salma Hassan on 3 Apr 2020
actually the first one works well, however it takes a long time within a loop.
kindly, could you explain the second solution becouse i didn't understand it

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by