%% Generador de Laplaciano de vector-matriz % %----------------------------------------- function lap=genLaplacian(m,n) s=m*n; if s<1000 lap=zeros(s); else lap=sparse(s); end for i=1:m; for j=1:n pos=(j-1)*m+i; %Posición en la vectorialización; if j==1 posizq=(n-1)*m+i; % Si en borde izquierdo, cae a última columna else posizq=(j-2)*m+i; %Pos izq end if j==n; posder=i; %Borde derecho, se cae a primera columna else posder=j*m+i; %Pos der end if i==m; posdwn=(j-1)*m+1; % Si en borde inferior, paso a 1 (j=1), a m+1 (j=2), etc. else posdwn=pos+1; end if i==1; posup=j*m; % Si en borde superior, paso a m (j=1), a m*2 (j=2), etc. else posup=pos-1; end lap(pos,pos)=-4; lap(pos,posizq)=1; lap(pos,posder)=1; lap(pos,posup)=1; lap(pos,posdwn)=1; end end