⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 expand_quad.m

📁 利用电磁场的源激发方法来计算光子晶体波导例如光子晶体光纤
💻 M
字号:
function out = expand_quad(in, sComp, class)
if lower(class(1)) == 'f'
        [rows, cols] = size(in);
        [mR, mC] = ndgrid(1:rows, 1:cols);
        mB = mR > ceil(tan(pi/3)*mC);
        in(mB) = 0;
        in = in(end:-1:1,:);
        inFirst = zeros(2*size(in));
        inFirst(1:rows, cols+1:end) = in;
        out = inFirst;
        vGreen = green_fun_vector(class);
        for ind = 1:5
                imRot = imrotate(inFirst, 60*ind, 'nearest', 'crop')*vGreen(ind+1);
                mB = imRot ~= 0;
                out(mB) = imRot(mB);
        end
        out = conv2(out, ones(3), 'same');
        return
end
in = in(end:-1:1,:);
flip_h = in(end:-1:1,:);
flip_v = in(:,end:-1:1);
flip_hv = in(end:-1:1,end:-1:1);
e1 = [1 1 1 1];
e2 = [1 -1 1 -1];
e3 = [1 -1 -1 1];
e4 = [1 1 -1 -1];
switch class
    case {'p1', 'p5'}
        switch lower(sComp)
            case {'ez'}
                sgn = e1;
            case {'hz'}
                sgn = e2;
            case {'ex', 'hy'}
                sgn = e3;
            case {'ey', 'hx'}
                sgn = e4;
        end
    case {'p2', 'p6'}
        switch lower(sComp)
            case {'ez'}
                sgn = e2;
            case {'hz'}
                sgn = e1;
            case {'ex', 'hy'}
                sgn = e4;
            case {'ey', 'hx'}
                sgn = e3;
        end
    case {'p4', 'p8'}
        switch lower(sComp)
            case {'ez'}
                sgn = e4;
            case {'hz'}
                sgn = e3;
            case {'ex', 'hy'}
                sgn = e2;
            case {'ey', 'hx'}
                sgn = e1;
        end
    case {'p3', 'p7'}
        switch lower(sComp)
            case {'ez'}
                sgn = e3;
            case {'hz'}
                sgn = e4;
            case {'ex', 'hy'}
                sgn = e1;
            case {'ey', 'hx'}
                sgn = e2;
        end
end
out = [sgn(2)*flip_v sgn(1)*in; sgn(3)*flip_hv sgn(4)*flip_h];

⌨️ 快捷键说明

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