【发布时间】:2014-11-12 22:37:49
【问题描述】:
我有以下部分:
N = size(p,1);
x = 1:N; y = x;
[X,Y] = meshgrid(x,y);
R = sqrt((2.*X-N-1).^2+(2.*Y-N-1).^2)/N;
Theta = atan2((N-1-2.*Y+2),(2.*X-N+1-2));
R = (R<=1).*R;
Rad = radialpoly(R,n,m);
Product = p(x,y).*Rad.*exp(-1i*m*Theta);
我在以下行中收到错误:
Product = p(x,y).*Rad.*exp(-1i*m*Theta);
我得到的错误是:
Index exceeds matrix dimensions.
我尝试“调试”程序,发现尺寸问题可能是由于以下行:
[X,Y] = 网格网格(x,y);
奇怪的是,该程序在我应用它的大多数图像上都没有给我错误。
你知道我为什么会收到这样的错误吗?
谢谢。
【问题讨论】:
-
什么是
p和radialpoly?目前,我们没有足够的信息来重现该问题。 -
很可能,问题不是由于网格网格造成的。您确定您的 p 始终是正方形图像吗(即您使用 y=x,但仅从 p 的第一个维度获得 N)
-
顺便说一句,您不应该使用
y,x而不是x,y访问p吗?即行列索引而不是 XY 坐标? -
是 Kostya 建议的:对于大小为 100x200 的图像
p会发生什么? -
p是图像,但不是正方形图像
标签: matlab runtime-error