how to Vectorize this for loop?
Show older comments
I am trying to create a full convolution without the conv2 function. For that, i would like to vectorize this nested loop.
[r,c] = size(A);% size of image A
[m,n] = size(mask);%size of the mask
ab=padarray(A,[2 2]); %Padding zeros in the original image
ab=im2double(ab);
B = zeros(r+m,c+n);
for x = 1 : r+m-1
for y = 1 : n+c-1
for i = 1 : m
for j = 1 : n
B(x, y) = B(x, y) + (ab(x+i-1, y+j-1) * mask(i, j));
end
end
end
end
2 Comments
Jos (10584)
on 1 Dec 2017
Why can't you use conv2? (it is rather silly to speed up code that is not optimal)
Another question: why the fixed [2 2] padding?
Miguel Reina
on 1 Dec 2017
Accepted Answer
More Answers (0)
Categories
Find more on Loops and Conditional Statements in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!