У меня большая матрица A
, и мне нужно найти координаты всех элементов в пределах определенного радиуса (range
) заданной точки (xpos,ypos)
. Вот что я обычно использую для этого:
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
дают мне отрицательные числа (потому что это дает индексы элементов или пикселей, которые не существуют). Есть ли способ изменить этот код так, чтобы я получал только положительные индексы (индексы элементов, которые действительно существуют)?