簡體   English   中英

錯誤-索引超出矩陣尺寸

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM