[英]Error - Index exceeds matrix dimensions
我有以下部分:
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] = meshgrid(x,y);
奇怪的是,該程序在我應用它的大多數圖像上都沒有給我錯誤。
您知道我為什么會收到這樣的錯誤嗎?
謝謝。
首先,很高興看到如何分配p
變量。
確保您的size(y)==size(p)
嘗試
assert(size(p,1) == size(p,2) )
要么
assert(N == size(p,2) )
如果返回錯誤,則您的p
不是平方。
如果您事先知道自己有一個矩形(非正方形)數組,請相應地分配y
:
x = 1:size(p, 1)
y = 1:size(p, 2)
...
%// and maybe dependent on what you do:
N = min(size(p))
這將確保沿第二維索引它時不超過p
的大小
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.