En Matlab, aa es una matriz de mil por mil, para cualquier punto conocido, ¿cómo se encuentran los puntos cercanos a él mediante programación?
Sin embargo, si solo se apunta a un punto, el rango de filas y columnas al que afecta no excederá más o menos 5 p>
Entonces, podemos crear una plantilla de -5 a 5 tanto vertical como horizontal
Primero calcula el desplazamiento del punto que cumple con los requisitos
Luego, toma p no importa qué, q, los puntos afectados se pueden obtener de estas compensaciones
No importa qué se elija p, q en el futuro, los puntos afectados se pueden obtener de estas compensaciones
[ di,dj]=meshgrid(-5:5);
temp=(sqrt(di.^2+dj.^2)<=5);
di=di (temp); %Obtener el desplazamiento de la primera dimensión
dj= dj(temp); %Obtener el desplazamiento de la segunda dimensión
%El desplazamiento de la plantilla anterior solo debe calcularse una vez;
%El siguiente cálculo se realiza una vez para cada punto (p,q) dado
%Si se da un punto (p,q), entonces todas las coordenadas son
ii=p+di; jj=q+dj;
temp=( ii>=1&ii<=1000&jj>=1&jj<=1000);% considerado No puede exceder el límite
ii=ii(temp);jj=jj(temp);
ind = sub2ind([1000 1000],ii,jj );% Para facilitar su uso, convierta i,j double para encontrar único
a(ind)=a(ind)*2; % cambio completo
Tenga en cuenta que para cada punto dado así (p,q), multiplicado por 2 es un área circular
Si las áreas circulares se superponen, la parte superpuesta se duplicará