gathering two cells in confusion matrix

1 vue (au cours des 30 derniers jours)
Salma Hassan
Salma Hassan le 2 Avr 2020
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]

Réponse acceptée

Fangjun Jiang
Fangjun Jiang le 2 Avr 2020
Modifié(e) : Fangjun Jiang le 2 Avr 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 commentaire
Salma Hassan
Salma Hassan le 3 Avr 2020
Modifié(e) : Salma Hassan le 3 Avr 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

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by