local_maxima.m

来自「利用电磁场的源激发方法来计算光子晶体波导例如光子晶体光纤」· M 代码 · 共 35 行

M
35
字号
% Find local maxima in matrix m, edges are excluded
% [mi, mj] = local_maxima(m)
function [mi, mj] = local_maxima(m)
[r,c] = size(m);
mi = [];
mj = [];
ind_m=1;
if (r==1) || (c==1)
    m = m(:);
    L =length(m);
    for ind = 2:L-1
        u = m(ind);
        neigh = [m(ind-1) m(ind+1)];
        if sum(u > neigh) == 2
            mi(ind_m) = ind;
            mj(ind_m) = ind;
            ind_m = ind_m +1;
        end
    end
    return
end
ind = 1;
for indi = 2:r-1
    for indj = 2:c-1
        u = m(indi, indj);
        neigh = [m(indi-1, indj-1) m(indi+1, indj+1) m(indi-1, indj+1) m(indi+1, indj-1) ...
                m(indi, indj-1) m(indi, indj+1) m(indi-1, indj) m(indi+1, indj)];
        if sum(u >= neigh) == 8
            mi(ind) = indi;
            mj(ind) = indj;
            ind = ind +1;
        end
    end
end

⌨️ 快捷键说明

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