【发布时间】:2018-09-04 18:39:44
【问题描述】:
我有一个大矩阵 A,需要能够找到给定点 (xpos,ypos) 的特定半径 (range) 内所有元素的坐标。以下是我通常使用的:
subx = max(1,xpos-range):min(n1,xpos+range);
suby = max(1,ypos-range):min(n2,ypos+range);
A_sub = A(subx,suby); %This is the submatrix around matrix A
其中n1 是size(A,1),n2 是矩阵的长度。这段代码给了我范围内所有元素的索引。我遇到的问题发生在点(xpos,ypos) 位于矩阵的最边缘时,例如xpos-range 或ypos-range 给我负数(因为它给出了不存在的元素或像素的索引)。有没有办法修改此代码,以便我只获得正索引(实际存在的元素的索引)?
【问题讨论】:
-
如果 "xpos-range" 或 "ypos-range" 给你负数,你的最大表达式是否会导致 "1" 是 A 的有效较低索引?
-
我看不到上面的代码也不起作用。您确定负索引导致您的问题吗?另外,请注意,Matlab 是列优先的,即第一个维度是一列。这意味着将
size(A,1)与y和size(A,2)与x相关联在概念上是最简单的。 -
"
n2是矩阵的长度" 这不应该是n2=size(A,2)吗?