getnmbr.m

来自「非连续波导时间域有限差分法仿真(TD-FDM)」· M 代码 · 共 56 行

M
56
字号
function [center,down,upper,left,right] = getNmbr(i,j,tag,nmbr)
           
       switch tag
            case inf
                center = 0;
                upper = 0;            down = 0;
                left = 0;             right = 0;
            case 0                                          % for non-boundary nodes
                center = nmbr(i,j);                              % get node increamental number
                down = nmbr(i-1,j);   upper = nmbr(i+1,j);       % get four index neiboring to center node
                left = nmbr(i,j-1);   right = nmbr(i,j+1);
            case 1                                          % edge nodes NOW (excluding corner nodes)
                center = nmbr(i,j);                              
                upper = nmbr(i+1,j);  down = 0;                           
                left = nmbr(i,j-1);   right = nmbr(i,j+1);
            case 2
                center = nmbr(i,j);                              
                down = nmbr(i-1,j);   upper = 0;                           
                left = nmbr(i,j-1);   right = nmbr(i,j+1);
            case 3
                center = nmbr(i,j);                              
                down = nmbr(i-1,j);   upper = nmbr(i+1,j);       
                right = nmbr(i,j+1);  left = 0;
            case 4
                center = nmbr(i,j);                             
                down = nmbr(i-1,j);   upper = nmbr(i+1,j);   
                left = nmbr(i,j-1);   right = 0;
            case 5
                center = nmbr(i,j);                            
                down = nmbr(i-1,j);   upper = nmbr(i+1,j);
                right = nmbr(i,j+1);  left = 0;
            case 6
                center = nmbr(i,j);                              
                down = nmbr(i-1,j);   upper = nmbr(i+1,j);
                left = nmbr(i,j-1);   right = 0;
            case 7                                          % corner nodes NOW
                center = nmbr(i,j);                         
                upper = nmbr(i+1,j);  down = 0;
                right = nmbr(i,j+1);  left = 0;
            case 8
                center = nmbr(i,j);                   
                down = nmbr(i-1,j);   upper = 0;
                right = nmbr(i,j+1);  left = 0;
            case 9
                center = nmbr(i,j);                              
                down = nmbr(i-1,j);   upper = 0;
                left = nmbr(i,j-1);   right = 0;
            case 10
                center = nmbr(i,j);                        
                upper = nmbr(i+1,j);  down = 0;
                left = nmbr(i,j-1);   right = 0;
            otherwise
                error('I dont know how to do then if there is an error here...');
        end
        
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?