📄 indice_ij.m
字号:
function I = indice_ij(Nx , Ny)
% Return the adjacency matrix (D x S) where D = 8 neighbours, S = NxNy.
%
% Usage
% -----
%
% I = indice_ij(Nx , [Ny]);
%
% Inputs
% ------
%
% Nx Number of nodes in x-axis (default Nx = 10)
% Ny Number of nodes in y-axis (default Ny = Nx)
%
% Outputs
% -------
%
% I Adjacency matrix (D x S)
%
%
% Example
% -------
%
% I = indice_ij(2 , 2);
%
%
% Author S閎astien PARIS (sebastien.paris@lsis.org)
% -------
if (nargin < 1)
Nx = 10;
end
if (nargin <2)
Ny = Nx;
end
D = 8;
S = Nx*Ny;
NyD = Ny*D;
SD = (S - 1)*D;
vect = [(Ny + 1) ; (Ny ) ; (Ny - 1) ; -1 ; -(Ny + 1) ; - Ny ; - (Ny - 1) ; 1 ];
vx2 = [1 ; 8 ; 7 ]; % 1 8 7
vx1 = [3 ; 4 ; 5 ]; % 2 i 6
% 3 4 5
OT = ones(3 , 1);
ON = ones(1 , Nx);
ind_S = (1 : S);
ind_tpx1 = (0 : NyD : SD);
ind_tpx2 = ((Ny - 1)*D : NyD : SD);
I = ind_S(ones(D , 1) , : ) + vect(: , ones(1 , S) );
I(((I < 1) | (I > S))) = 0;
I([vx1(: , ON) + ind_tpx1(OT , :) , vx2(: , ON) + ind_tpx2(OT , :)]) = 0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -