How can I vectorize these for loops?
Afficher commentaires plus anciens
Newbie here. I was wondering if there was a way to vectorize these for loops, or simply to change it to make it faster? Any help would be appreciated. Thank you!
m = zeros(50);
d = zeros(50);
for i = 1:size(m,1)
for n = 1:size(m,2)
try d(i,n) = sum(m(i-1:i+1,n-1:2:n+1),'all') + sum(m(i-1:2:i+1,n),'all');
catch, continue
end
end
end
What it does is scan the matrix positions immediately surrounding each matrix position being looped through and sums the values. It doesn't work at the edges or the corners, which is what the try, catch statement is for. Thanks again.
2 commentaires
Stephen23
le 28 Mai 2020
x = [1,1,1;1,0,1;1,1,1];
d = conv2(m,x,'same');
Budhvin Jayasinghe
le 28 Mai 2020
Réponse acceptée
Plus de réponses (0)
Catégories
En savoir plus sur Loops and Conditional Statements dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!