MATLAB: How to avoid nested loops when taking portions of a matrix(e.g using every 10×10 matrix in a 100×100 matrix)

matrixnested loops

I am interested in running several operations in every 10×10 matrix in a 100×100 matrix. How do I avoid nested loops here? For example,
A = rand(100,100);
B = rand(10,10);
C = zeros(91,91);
for i = 1:91
for j = 1:91
D = B .* A(i:i+9,j:j+9);
C(i,j) = sum(D(:));
end
end

Best Answer

C = imfilter(A,B);