How would I vectorise this code

tempSum = 0;
for m = topLeft(2) : topLeft(2) + widthhight(2) -8
for n = topLeft(1) : topLeft(1) + widthhight(1) -8
for x = 0 : 8
for y = 0 : 8
tempSum = tempSum + double(double(i(n+y,m+x)) * kernel(y+1,x+1));
end
end
result(n + 4,m + 4) = tempSum/81;
tempSum=0;
end
end

2 件のコメント

Walter Roberson
Walter Roberson 2020 年 3 月 6 日
conv2() some subset of i with kernel as being the thing to convolve with. Use the 'valid' option, I suspect.
Josh Webb
Josh Webb 2020 年 3 月 6 日
Thank you, a lot faster now. I knew about conv2 but didn't know about the "valid" argument

サインインしてコメントする。

回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeParallel Computing Toolbox についてさらに検索

製品

リリース

R2019b

質問済み:

2020 年 3 月 6 日

コメント済み:

2020 年 3 月 6 日

Community Treasure Hunt

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

Start Hunting!

Translated by