我想对以下 MATLAB 代码进行矢量化。我认为它一定很简单,但我发现它仍然令人困惑。
r = some constant less than m or n
[m,n] = size(C);
S = zeros(m-r,n-r);
for i=1:m-r+1
for j=1:n-r+1
S(i,j) = sum(diag(C(i:i+r-1,j:j+r-1)));
end
end
代码从另一个得分表C计算动态编程算法的得分表S。
对角线求和是为用于生成C的各个数据片段生成分数,用于所有可能的片段(大小为 r)。
提前感谢您的任何答案!对不起,如果这个应该很明显......
注意
内置的 conv2 比 convnfft 更快,因为我的 eye(r) 非常小( 5 <= r <= 20 )。convnfft.m 声明 r 应该 > 20 才能体现任何好处。