向量化循环后的下标分配维度不匹配

时间:2013-12-18 21:36:49

标签: matlab loops vectorization edge-detection

我试过这个:

for r=1:fsize
     for c=1:fsize
         mask(r,c) = exp(-(((r-centre)^2+(c-centre)^2)/2*(sigma^2)));
     end
 end

mask(1:fsize,1:fsize) = exp(-(((1-centre:fsize-centre).^2.+(1-centre:fsize-centre).^2)./2.*(sigma.^2)));

但我现在收到错误“Subscripted assignment dimension mismatch”。

我的理解是,这与两个不匹配的数组中的索引有关,但这似乎不是这样的情况?

1 个答案:

答案 0 :(得分:2)

使用meshgrid

[r c]=meshgrid(1:fsize);
mask = exp(-(((r-centre).^2+(c-centre).^2)/2*(sigma^2)));   

这假定centresigma是标量。