cut_sd.m

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

M
22
字号
function sdPosOut = cut_sd(sdPos, x0, y0, ang, bAbove, bUpdateN)% cut-off all testing-points or sources other than the ones in the first 'ang' degree sectorsdPosOut = sdPos;if isempty(sdPos.vY)        returnenddelta = mean(abs(diff(sdPos.vY)+ j*diff(sdPos.vX)))/10; % avoid a point on the sector edgeif ~bAbove         delta = -delta*tan(ang);endvI = find(xor(~bAbove, sdPos.vY-tan(ang)*(sdPos.vX-x0) > y0 + delta));sdPosOut.vX = sdPos.vX(vI);sdPosOut.vY = sdPos.vY(vI);if isfield(sdPos, 'vNx')        sdPosOut.vNx = sdPos.vNx(vI);        sdPosOut.vNy = sdPos.vNy(vI);endif bUpdateN        sdPosOut.n = length(sdPosOut.vX);else        sdPosOut.n = sdPos.n;end

⌨️ 快捷键说明

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